磁盘性能测试(读/写)
2011-11-21 15:44
1.测试磁盘写能力 time dd if=/dev/zero of=/opt/test.db bs=1M count=3000 3000+0 records in 3000+0 records out real 1m18.735s user 0m0.001s sys 0m9.972s 因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。 2.测试磁盘读能力 time dd if=/dev/sda5 of=/dev/null bs=1M 6912+0 records in 6912+0 records out real 1m51.310s user 0m0.004s sys 0m9.253s 因为/dev/sdb5是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sda5上,也相当于测试磁盘的读能力。 3. 测试同时读写能力 time dd if=/dev/sda5 of=/opt/test.db bs=1M 2193+0 records in 2193+0 records out real 1m36.257s sys 0m8.480s 这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test.db是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。 4:其他能力 修复硬盘: dd if=/dev/sda of=/dev/sda 硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic fluxpoint。当磁头读到这些区域时会遇到困难,并可能导致I/O 错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的 确定硬盘的最佳块大小: 通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小,数据量大小都一样,块大小不一致,看哪个时间最短 dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file |