mukey 发表于 2012-09-03 16:28

硬盘读写性能测试

业务想上glusterfs,要做性能测试,所以首先想测一下单台服务器的性能。

服务是RAID5,不同的测试方法和工具测出来的结果差别太大了,跪求解答。
hdparm 单个硬盘就251MB/s,为什么dd,cp的性能只有180MB/s左右,RAID5不是把读写分散了么,性能实在无法解释啊。
164 服务器磁盘,网卡性能 benchmark
[*]硬件物理参数

raid55 * 2TB


[*]采用 dd 测试磁盘写性能

yangrq@kooxoo164:~$ date ; dd if=/dev/zero of=/home/yangrq/bak/abc bs=16M count=4096 oflag=direct ; dateMon Sep3 10:16:12 CST 20124096+0 records in4096+0 records out68719476736 bytes (69 GB) copied, 395.698 s, 174 MB/sMon Sep3 10:22:48 CST 2012


[*]采用 dd 测试磁盘读性能

yangrq@kooxoo164:~$ date ; dd if=/home/yangrq/bak/abc of=/dev/null bs=16Miflag=direct ; dateMon Sep3 10:24:18 CST 20124096+0 records in4096+0 records out68719476736 bytes (69 GB) copied, 392.168 s, 175 MB/sMon Sep3 10:30:50 CST 2012


[*]采用 iperf 测试网络性能

yangrq@kooxoo100:~$ iperf -c 192.168.0.164 -t 600------------------------------------------------------------Client connecting to 192.168.0.164, TCP port 5001TCP window size: 16.0 KByte (default)------------------------------------------------------------    local 192.168.0.100 port 64096 connected with 192.168.0.164 port 5001    [ ID] Interval       Transfer   Bandwidth    0.0-600.0 sec48.6 GBytes    696 Mbits/sec


[*]本地文件读取 读操作 cp

yangrq@kooxoo164:~$ date ; cp tarfile.tar /dev/null; dateFri Aug 31 21:22:02 CST 2012Fri Aug 31 21:28:04 CST 2012yangrq@kooxoo164:~$ date ; cp tarfile.tar /dev/null; dateFri Aug 31 21:31:34 CST 2012Fri Aug 31 21:37:36 CST 2012

实际读: 180 M/S

[*]使用脚本读取

yangrq@kooxoo164:~/test_proj$ date ; python read.py ; dateSat Sep1 17:59:50 CST 2012total 10737418240Sat Sep1 17:59:54 CST 2012

实际读: 2.5G/S

[*]本地拷贝 写操作

yangrq@kooxoo164:~/bak$ date; cp ../tarfile.tar . ; dateSat Sep1 12:48:11 CST 2012Sat Sep1 13:08:18 CST 2012yangrq@kooxoo164:~/bak$ date; cp ../tarfile.tar . ; dateSat Sep1 13:31:37 CST 2012Sat Sep1 13:52:04 CST 2012

实际速率:53M/S

[*]写脚本测试写

yangrq@kooxoo164:~/test_proj$ date ; python write.py ; dateSat Sep1 17:00:35 CST 2012Sat Sep1 17:01:20 CST 2012yangrq@kooxoo164:~/test_proj$ ls -lh big_file.txt-rw-r--r-- 1 yangrq yangrq 10G Sep1 17:01 big_file.txt

速率:222M/S

[*]SCP

yangrq@kooxoo1-122:~$ date ; scp 192.168.0.164:tarfile.tar /dev/null ; dateSat Sep1 14:07:56 CST 2012tarfile.tar                                             100%   65GB61.9MB/s   17:55Sat Sep1 14:25:51 CST 2012yangrq@kooxoo164:~/bak$ date; scp 192.168.1.122:tarfile.tar . ;dateSat Sep1 16:01:15 CST 2012tarfile.tar                                             100%   65GB57.4MB/s   19:19Sat Sep1 16:20:34 CST 2012


[*]hdparm

yangrq@kooxoo164:~$ df -lhFilesystem            SizeUsed Avail Use% Mounted on/dev/sda1             9.2G299M8.5G   4% /tmpfs                  16G   0   16G   0% /lib/init/rwudev                   16G132K   16G   1% /devtmpfs                  16G   0   16G   0% /dev/shm/dev/sda6             3.6T1.2T2.2T35% /home/dev/sda5             4.6G138M4.3G   4% /tmp/dev/sda3             9.2G1.1G7.7G12% /usr/dev/sda4            19G1.3G   17G   8% /varyangrq@kooxoo164:~$ sudo hdparm -tT /dev/sda6/dev/sda6: Timing cached reads:   7914 MB in2.00 seconds = 3959.57 MB/sec Timing buffered disk reads: 754 MB in3.00 seconds = 251.11 MB/sec

小结glusterfs 推荐磁盘测试用 dd glusterfs 推荐网络测试用 iperf
磁盘读

cp180MB/scp $BIF_FILE /dev/null
scp61MB/sscp $HOST:$BIF_FILE /dev/null (网络瓶颈)
dd175MB/sdd if=/home/yangrq/bak/abc of=/dev/null bs=16M iflag=direct
python read.py2.5GB/s有待查证原因

磁盘写

cp53MB/scp $BIF_FILE .
scp57MB/sscp $HOST:$BIF_FILE .
dd173MB/sdd if=/dev/zero of=/home/yangrq/bak/abc bs=16M count=4096 oflag=direct
python write.py222MB/s有待查证原因

网络IO

scp61MB/sscp $HOST:$BIF_FILE /dev/null (ssh或其他原因影响统计)
iperf87MB/s正常值 90 ~ 110 MB/s (1Gbit Ethernet)

hdparm

hdparm251MB/srm -tT /dev/sda6







hcz100 发表于 2012-09-04 17:27

这个不同的测试软件测试是有差别的,而且测试软件反应出来的结果反应出来的也不一定就是硬盘的实际性能,参考一下就可以了,没必要太当真

mukey 发表于 2012-09-04 22:15

回复 2# hcz100

如果测试的结果按照相近比例放大或缩小,或者说差异不那么大,我觉得是可以接受的。
但这个结果实在无法让人自我安慰
   

apen 发表于 2012-09-05 13:38

测试结果受测试环境影响比较大(系统处理能力、系统负载情况、并发操作情况、硬盘的使用情况等等),而且大多数情况下,使用RAID是为了提高可靠性,对大多数应用来说有个100MB的速度一般就可以满足使用了。性能高很多的SSD在服务器上做测试情况也好不到哪里。

mukey 发表于 2012-09-05 14:03

回复 4# apen

既然是性能测试,当然要把影响因素降到最低了。如果要对某台服务器进行测试,这台机器必须是完全不跑其他的应用。其他的比如syslog等对测试结果影响不大。我的测试结果就是这样测的。

RAID 的介绍都是说把读写分到不同的磁盘以提高性能,当然更重要的是安全。我测试的结果实在看不出明显的性能提高。

普通SATA 7.2K 的服务硬盘,理论上都可以上100+MB/s

我用了一台很老的个人PC硬盘(7.2K)测了一下,给大家一个参考,这个测试,各个指标都还算正常(解释的通)

[*]读操作


cp65MB/scp $BIF_FILE /dev/null
dd70MB/s

hdparm73MB/s



[*]写操作


cp18MB/s

dd30MB/s




   

apen 发表于 2012-09-05 18:03

本帖最后由 apen 于 2012-09-05 18:04 编辑


多数情况下使用RAID更多关注的是随机读写IOPS性能,另外同样的RIAD方式下,硬盘的数量对性能也有一定的影响。附件是某型号存储服务器的测试成绩。

mukey 发表于 2012-09-06 10:37

回复 6# apen

赞!

他那个数据用什么工具测出来的?
我用IOZONE 测了一下,附上我的结果。(加了-I参数,直接硬盘读取)


   

apen 发表于 2012-09-06 11:48

测试软件用的是IOmeter。你的表上可以看出,文件块大小对性能影响很大,同样持续操作时性能下降很厉害。

mukey 发表于 2012-09-06 14:18

回复 8# apen

测试软件用的是IOmeter。你的表上可以看出,文件块大小对性能影响很大,
这个很赞同,趋势上和你给的图是一样的。但写的性能差别很大,尤其是对小文件

同样持续操作时性能下降很厉害。
这个是如何看出来的,从列的角度?列代表了不同的文件大小。

虽然说测试软件能给出数据,但其实我很怀疑这些数据的准确性。
比如:echo 3 > /proc/sys/vm/drop_caches 可以禁用缓存,cp $BIG_FILE /dev/null,文件大小/内存大小 对测试结果影响非常大,
同样我也很怀疑测试工具,就像我给出的excel表中,按列去比较的话,也是无法解释得通的。

过一阵,我研究一下你的IOmeter,看看在我这边跑的结果。

PS:
我测试机器的配置:8 core, 32GMEM, 4T硬盘(运维也不知道硬件,估计是SATA, 7.2K, 硬盘数不知)

   

apen 发表于 2012-09-06 23:57

回复 9# mukey
怎么会用SATA的硬盘,按你们的要求对硬盘IO要求这么高为什么不使用SAS的盘?


   
页: [1] 2
查看完整版本: 硬盘读写性能测试