检测硬盘的读写IO速度

 

1. 使用hdparm命令

[root@server0 ~]# hdparm -Tt /dev/sda

/dev/sda:

 Timing cached reads:   8528 MB in  2.00 seconds = 4266.81 MB/sec

 Timing buffered disk reads: 218 MB in  3.05 seconds =  71.38 MB/sec

可以看到,2秒钟读取了8528M的缓存,约合4266.81MB/sec

3.05秒钟读取了218M磁盘(物理读),读取速度约合71.38MB/sec

 

2.使用dd命令

相对于hdparm来说,不够专业,但对于平时的简单评估来说是首选的

在使用前首先了解两个特殊设备:
/dev/null 伪设备,回收站.写该文件不会产生IO
/dev/zero 伪设备,会产生空字符流,对它不会产生IO

测试方法:

测试io写的速度

[root@server0 mnt]# time dd if=/dev/zero of=/mnt/test bs=1M count=1024

1024+0 records in

1024+0 records out

1073741824 bytes (1.1 GB) copied, 23.6557 s, 45.4 MB/s

 

real0m23.737s

user0m0.000s

sys0m0.858s

可以看到,在23s中,生成了一个1.1G的文件,IO写的速度约为45.4M/sec

测试io读的速度

[root@server0 mapper]# time dd if=/dev/mapper/rhel-home of=/dev/null bs=8k

391065+0 records in

391064+0 records out

3203596288 bytes (3.2 GB) copied, 42.3702 s, 75.6 MB/s

real0m42.371s

user0m0.109s

sys0m10.093s

42s里读取了3.2G的文件,计算得75.6MB/sec

同时测试io读写速度

[root@server0 mnt]# time dd if=/dev/sda1 of=/mnt/test bs=8k

25600+0 records in

25600+0 records out

209715200 bytes (210 MB) copied, 2.89722 s, 72.4 MB/s

real0m2.898s

user0m0.012s

sys0m0.470s