介绍两种常用的Linux磁盘性能测试方案

一、命令测试

# time命令,每次写入8k数据,执行100000次,测试“写”的性能
time dd if=/dev/zero of=test.dbf bs=8k count=100000
# dd命令,每次读取8k数据,执行100000次,测试“读”的性能
dd if=test.dbf bs=8k count=100000 of=/dev/null

尽量在服务器正常运行的情况下测试,否则测试的数据会不准。

二、hdparm软件测试

1、安装hdparm
yum -y install hdparm
2、查看帮助信息
hdparm -h

-h 详细参数如下

-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c<I/O模式> 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p<PIO模式> 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 评估硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。
3、显示硬盘的相关信息
fdisk -l
4、评估硬盘的读取效率,下面的/dev/vda1是上面的命令查询到的磁盘
hdparm -t /dev/vda1
5、测试硬盘缓存的读取速度
hdparm -T /dev/vda1
6、直接测试硬盘的读性能
hdparm -tT --direct /dev/vda1
7、查看DMA情况
hdparm -cdt /dev/vda1

ae1e8de4e001c87516259f335d5001.png

参数1:-T perform cache read timings显示了不存取磁盘直接从Linux缓存读取数据的速度. 这项测量实际上标示了被测系统的处理器,缓存和内存的吞吐量。

参数2:-t perform device read timings显示了不使用预先的数据缓冲, 标示了Linux下没有任何文件系统开销时磁盘可以支持多快的连续数据读取。

最后修改:2024 年 10 月 29 日
如果觉得我的文章对你有用,请随意赞赏