在Linux系统中也有很多命令可以测试硬盘的读写速度指标。以下是几个常用命令(注意:在执行测试命令之前,请务必备份数据以避免数据丢失!
1、dd 命令
首先挂载磁盘
mount /dev/sdb /test
dd 命令可用于进行硬盘读写速度测试。
例如:进行硬盘写入速度测试,可以将硬盘的/dev/sdb分区写满1G的数据,并输出写入速度:
dd if=/dev/zero of=/test/testfile bs=1G count=1 oflag=direct
进行硬盘读取速度测试,可以从硬盘的/dev/sdb分区读取1G的数据,并输出读取速度:
dd if=/test/testfile of=/dev/null bs=1G count=1 iflag=direct
dd命令写入硬盘数据
2、 hdparm 命令
hdparm 命令是一个硬盘工具,可用于评估硬盘的性能和控制硬盘的参数设置。
例如,可以使用以下命令测试硬盘的读取速度:
hdparm -Tt /dev/sdb
上述命令会显示硬盘的缓存读取速度 (Cached Read Speed) 和不带缓存的读取速度 (Buffered Disk Read Speed)。
3、 fio 命令
fio 是一个灵活的 I/O 性能测试工具,它使用多线程进行测试,可以测试硬盘的读写速度、IOPS 和延迟等不同指标。
例如,可以使用以下命令测试硬盘的顺序读取速度:
fio --name=read --ioengine=libaio --iodepth=64 --rw=read --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=60 --time_based
以下命令测试硬盘的随机读取速度:
fio --name=randread --ioengine=libaio --iodepth=32 --rw=randread --bs=4k --numjobs=1 --size=256M --runtime=60 --time_based --group_reporting
参数说明:
name=randread:指定测试作业的名称为randread
ioengine=libaio:指定使用libaio作为IO引擎
iodepth=32:指定IO深度,即同时进行的IO操作数量
rw=randread:指定测试读取数据的方式为随机读取
bs=4k:测试中每个IO块的大小为4KB
numjobs=1:指定同时执行的作业数,这里是1个
size=256M:指定测试数据的大小为256MB
runtime=60:测试运行的时间为60秒
time_based:以时间为基础的测试
group_reporting:指定报告输出格式为分组的,便于阅读结果。
fio将测试结果输出到标准输出,通常可以使用“>`或者“>>”来将测试结果保存到文件中,例如:
fio … > result.log
测试可能需要一些时间,具体时间与测试的数据量、硬盘类型、CPU、内存等条件有关。