dd测试磁盘速度

/dev/null:回收站、无底洞

/dev/zero:产生字符

Ø 测试磁盘写能力

time dd if=/dev/zero of=/test.dbf bs=8k count=300000

因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

[root@zzz ~]# time dd if=/dev/zero of=/home/test.dbf bs=8k count=300000
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 69.412 seconds, 35.4 MB/s

Ø 测试磁盘读能力

time dd if=/dev/sdb1 of=/dev/null bs=8k

因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。
[root@zzz ~]# time dd if=/dev/sda5 of=/dev/null bs=8k
248207+0 records in
248206+0 records out
2033303552 bytes (2.0 GB) copied, 36.566 seconds, 55.6 MB/s

real 0m36.653s
user 0m0.089s
sys 0m1.703s

Ø 测试同时读写能力

time dd if=/dev/sdb1 of=/test1.dbf bs=8k

[root@zzz ~]# time dd if=/dev/sda2 of=/home/test.dbf bs=8k
1203151+0 records in
1203150+0 records out
9856204800 bytes (9.9 GB) copied, 509.952 seconds, 19.3 MB/s

real 8m32.946s
user 0m0.625s
sys 0m30.348s

这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。