CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 5695|回复: 2

DD的参数对IO测试的成绩影响非常大

[复制链接]
发表于 2015-6-23 10:41:20 | 显示全部楼层 |阅读模式
本帖最后由 wujunjie 于 2015-6-23 13:45 编辑

看到几个帖子反映测试CT通过SATA挂载硬盘的速度非常慢。现在我做的东西对IO有一定要求,所以比较头疼这个问题,就自己动手做了一套测试。

测试环境
lubuntu14.04
某国产SSD,文件系统是ext4
ASUS RT-N16千兆路由

每次测试使用以下命令清空缓存,是否清空对成绩影响非常大。
sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

首先是网络测试,通过iperf进行测试确认了其他网友单线程500Mb左右,多线程7XXMb的速度。然后通过filezilla下载1G的文件观察实际速度,结果总共使用了25秒,也就是大致40M左右。但是因为测试机使用的老式HDD,这个速度基本也接近写入瓶颈了。(SSD的台式机换装MacOS的时候没留意有线网络部分异常,暂时无法进行测试,如果搞定的话再来补充数据)

之前这个SSD在windows下通过挂载USB3.0硬盘盒以NTFS文件系统测试的结果是2XXM(具体有点记不清了)

所以我又重新测试了SSD的IO性能。


然后我在SSD的目录下执行以下命令
dd if=/sata/1000M.img of=/dev/null bs=64k


得到的都是130M左右的速度。如果不清除缓存那会得到3XXM的异常数据。

但这个数字与windows下的测试仍然有很大差距。

接着又参考这个连接中的命令http://cubie.cc/forum.php?mod=vi ... &highlight=CT%2BSSD

使用以下命令重做测试
dd if=/sata/1000M.img bs=64k |dd of=/dev/null

得到的结果是33.9M,不清除缓存是43.2M

那么问题就来了,这个速度于明显低于我的网络测试结论。FTP服务有额外开销的关系,传输速度只会比单纯的磁盘读写更慢,显然这个数字是不符可网络部分测试结论的,所以使用dd进行IO测试时如何才能得到符合实际情况的结论是个问题。

对比这两条命令
dd if=/sata/1000M.img of=/dev/null bs=64k
dd if=/sata/1000M.img bs=64k |dd of=/dev/null

似乎只是相同参数的不同写法,查看dd的help并没有很好的线索。但鉴于dd不同参数得到的结论会差距很大,其作为基准测试工具的时候需要留意这个问题。

以下为archlinux给出的参考测试方法https://wiki.archlinux.org/index.php/SSD_Benchmarking

# echo 3 > /proc/sys/vm/drop_caches
$ dd if=tempfile of=/dev/null bs=1M count=1024

顺便提一下,该页面得到的M4的测试数据与我在台式机上的测试数据基本相同(测试环境是SATA3、Windows、NTFS),所以这个方法得到的结论应该是正确的。



使用bs=1M count=1024参数再次测试CT挂载的SSD得到的结果是122M。



回复

使用道具 举报

发表于 2015-6-27 17:37:33 | 显示全部楼层
这不是参数的问题, 你走一遍linux管道, 当然慢啦
能不使用"|"的地方,尽量不使用,特别是涉及到性能的时候.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-27 18:25:53 | 显示全部楼层
nabice 发表于 2015-6-27 17:37
这不是参数的问题, 你走一遍linux管道, 当然慢啦
能不使用"|"的地方,尽量不使用,特别是涉及到性能的时候.
...

不知道为啥论坛里很多人做测试都喜欢用“|”。。。。。。看到不少结果都低的离谱。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-23 00:54 , Processed in 0.020413 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部