在 Linux 中,使用 fio 来测评硬盘性能是一种常见的做法。fio 是一个开源的 I/O 测试工具,它能够模拟多种 I/O 负载,帮助用户评估硬盘的读写性能、IOPS(每秒输入/输出操作数)和延迟等指标。以下是如何使用 fio 进行硬盘性能测评的基本步骤:

1. 安装 fio

如前所述,可以通过包管理器安装 fio,或者从源码编译安装。

2. 准备测试文件

在测评之前,需要准备一个足够大的测试文件或分区,以便 fio 进行测试。可以使用 dd 命令创建一个测试文件:

sudo dd if=/dev/zero of=/tmp/testfile bs=1G count=10

这个命令会在 /tmp 目录下创建一个 10GB 大小的测试文件。

3. 运行 fio 测试

使用 fio 进行测试时,可以通过命令行参数指定测试的类型、块大小、I/O 深度等。以下是一些常见的测试命令示例:

  • 顺序写测试:

bash fio --name=seq-write --ioengine=libaio --rw=write --bs=1M --size=10G --numjobs=1 --direct=1 --filename=/tmp/testfile

  • 随机写测试:

bash fio --name=rand-write --ioengine=libaio --rw=randwrite --bs=4k --size=10G --numjobs=1 --direct=1 --filename=/tmp/testfile

  • 顺序读测试:

bash fio --name=seq-read --ioengine=libaio --rw=read --bs=1M --size=10G --numjobs=1 --direct=1 --filename=/tmp/testfile

  • 随机读测试:

bash fio --name=rand-read --ioengine=libaio --rw=randread --bs=4k --size=10G --numjobs=1 --direct=1 --filename=/tmp/testfile

  • 混合随机读写测试:

bash fio --name=mixed-rw --ioengine=libaio --rw=randrw --rwmixread=75 --bs=4k --size=10G --numjobs=1 --direct=1 --filename=/tmp/testfile

4. 分析测试结果

fio 会在测试完成后输出详细的性能报告,包括 IOPS、吞吐量(带宽)、延迟等关键指标。这些数据可以帮助你了解硬盘的性能表现。

5. 清理测试环境

测试完成后,可以删除测试文件以释放空间:

sudo rm /tmp/testfile

注意事项

  • 在测试生产环境的硬盘之前,请确保已经备份了所有重要数据。
  • fio 测试可能会对硬盘造成较大压力,请在合适的时间进行测试,避免影响正常业务。
  • 测试结果可能受到系统其他运行中进程的影响,尽量在系统负载较低时进行测试。

通过上述步骤,你可以使用 fio 对 Linux 系统中的硬盘进行性能测评。