CentOS下测试磁盘性能

硬件环境:IBM X3650 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/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。(touch filename可以创建空文件)
因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
注意:需根据磁盘剩余空间大小确认count参数。

读测试
time dd if=/data/iotest 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
说明:
对/data/iotest的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令相当于测试磁盘的读能力。

读写测试
time dd if=/data/iotest of=/data/iotest1 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
说明:
该命令需要再新建一个空文件/data/iotest1,从/data/iotest写入/data/iotest1,相当于同时测试读写性能,模拟的是日常使用的情况。
注意:需根据磁盘剩余空间大小确认count参数。

2012年5月6日 | 归档于 CentOS
本文目前尚无任何评论.

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>