硬件环境:
IBM 3650 M3 7945o75机架式服务器,主要硬件参数:
Intel Xeon Processor X5675 6C 3.06GHZ 12MB Cache 1333MHz X 2
4GB PC3L-10600 CL9 ECC DDR3 1333MHz LP RDIMM X 4
300GB 10K 6Gbps SAS 2.5″ SFF Slim-HS HDD X 3
ServeRAID M5015阵列卡 组建RAID5
软件环境:
CentOS 5.8 64bit
dd测试的磁盘性能只是连续IO,所以只能作为理论值来参考。
简单测试:
dd if=/dev/zero of=test bs=64k count=16k
这个很不准确,因为命令结束的时候数据还没真正写到磁盘上;
dd if=/dev/zero of=test bs=64k count=16k conv=fsync
这个还算准确,数据已经写入磁盘;
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
这个可以当成是模拟数据库插入操作,所以很慢。
比较严谨的测试:
读测试
time dd if=/dev/sda1 of=/dev/null bs=8k count=8388608
结果如下:
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 221.005 seconds, 311 MB/s
real 3m41.006s
user 0m2.212s
sys 0m35.851s
说明:因为/dev/sda1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令相当于测试磁盘的读能力。
写测试
time dd if=/dev/zero of=/data/iotest bs=8k count=8388608
结果如下:
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 383.778 seconds, 179 MB/s
real 6m36.327s
user 0m2.524s
sys 1m38.902s
说明:该命令需要先新建一个空文件,本命令中是/data/iotest。因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所 以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。注意:请根据磁盘剩余空间大小确认count参数。
读写测试
time dd if=/dev/sda1 f=/data/iotest bs=8k count=8000000
结果如下:
8000000+0 records in
8000000+0 records out
68719476736 bytes (69 GB) copied, 683.216 seconds, 95.9 MB/s
real 12m11.475s
user 0m2.615s
sys 2m4.311s
说明:同时测试磁盘的读写能力。注意:请根据磁盘剩余空间大小确认count参数。