linux 硬盘读写性能测试

dd是进行数据块拷贝的命令,可以很好的测试硬盘读写性能,网上例子很多,但是有时候我们并没有很好的理解它。

我用单机单块硬盘重新测试下。并且分析。


写性能测试

[root@localhost ~]# dd if=/dev/zero bs=1024 count=1000000 of=./1Gb.file  conv=fdatasync
记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,9.07139 秒,113 MB/秒
解释:

if=/dev/zero                         提供数据源头。一般认为提供数据耗时占总比例很低,进而可以忽略它的耗时。

bs=1024                               一次产生1024个字节数。

count=1000000                   循环产生1000000次1024字节

cony=fdatasync                   写文件为了减少对磁盘的频繁访问,所以除非你关闭文件的读写缓存,不然文件的写入是先写进缓存的。fdatasync的作用就是将数据写入磁盘



读性能测试

[root@localhost ~]# dd if=./1Gb.file bs=1024 of=/dev/null 
记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,0.762979 秒,1.3 GB/秒
[root@localhost ~]# free
             total       used       free     shared    buffers     cached
Mem:       3847976    2859992     987984     134476          0    2297636
-/+ buffers/cache:     562356    3285620
Swap:      4079612     286208    3793404
解释:

of=/dev/null                        理解为一个不占用写时间的地方就可以。

常识告诉我,机械硬盘读速度不可能有1.3GB/秒。我觉得是cache对它进行了干扰。

所以我们需要清空cache,以前测试OOM,写过类似的程序把数据从cache挤出去。

我们清空cache后重新测试!

[root@localhost ~]# free
             total       used       free     shared    buffers     cached
Mem:       3847976     470032    3377944     130980          0      12388
-/+ buffers/cache:     457644    3390332
Swap:      4079612     432476    3647136
[root@localhost ~]# dd if=./1Gb.file bs=1024 of=/dev/null 
记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,7.82455 秒,131 MB/秒
131MB/秒这个数据是比较正常的,如果数据有偏差,可以按这种步骤多试几次求众数吧。


目前来看。这样测试出来的数据是可信的。也没有明显的弊端。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值