之前http://blog.csdn.net/yibei8811/article/details/47168657 写过,可以测试硬盘速度,
有一点倒不是很全,因为由于bs和count参数的变化,会带来性能上的变化。
猜想可知,如果bs过小。那么count执行循环需要消耗大量的cpu,cpu的瓶颈会限制硬盘的速度。
如果bs过大,是否因为找寻出一块足够大的内存存放数据消耗太多时间?我们猜想内存理应和磁盘一样会有很多碎片需要整理的。
今天无聊想测试机器内存的速度。同样使用dd命令也是验证我们的猜想的。
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=1024000000 count=1 of=/dev/null
1+0 records in
1+0 records out
1024000000 bytes (1.0 GB) copied, 0.587207 s, 1.7 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=1024000000 count=1 of=/dev/null
1+0 records in
1+0 records out
1024000000 bytes (1.0 GB) copied, 0.789158 s, 1.3 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=10240000 count=100 of=/dev/null
100+0 records in
100+0 records out
1024000000 bytes (1.0 GB) copied, 0.0974559 s, 10.5 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=10240000 count=100 of=/dev/null
100+0 records in
100+0 records out
1024000000 bytes (1.0 GB) copied, 0.102887 s, 10.0 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=102400 count=10000 of=/dev/null
10000+0 records in
10000+0 records out
1024000000 bytes (1.0 GB) copied, 0.0827365 s, 12.4 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=102400 count=10000 of=/dev/null
10000+0 records in
10000+0 records out
1024000000 bytes (1.0 GB) copied, 0.0829439 s, 12.3 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=1024 count=1000000 of=/dev/null
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 0.5138 s, 2.0 GB/s
[root@cbtprdmaster01 logs]# dd if=/dev/zero bs=1024 count=1000000 of=/dev/null
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 0.531134 s, 1.9 GB/s
得出结论,如果内存和cpu未达到瓶颈,则内存的速度才是最快的。约大于10GB/s