Linux dd工具磁盘读写测试分析

摘要:
话说,Linux自带的dd工具测试硬盘读写速度只能提供一个大概的测试结果,而且是连续IO而不是随机IO,理论上文件规模越大,测试结果越准确。应该是sda盘已经格式化了文件系统有关。

话说,Linux 自带的dd工具测试硬盘读写速度只能提供一个大概的测试结果,而且是连续IO 而不是随机IO ,理论上文件规模越大,测试结果越准确。理论上bs越大,所测得性能越高。

上句来自网上,是不是真的呢?百闻不如一见。今天来进行实际的测试和对比。

找了一台没有硬盘的机器,再找了一块希捷7200rpm 3T的硬盘。一块硬盘只能做raid0,条带设置为256K。 敲入lsblk命令如下。

Linux dd工具磁盘读写测试分析第1张

一、格式化前对新加的盘进行测试

1. 读测试

Linux dd工具磁盘读写测试分析第2张

2. 写测试

Linux dd工具磁盘读写测试分析第3张

3. 在测试完下面的2.5后,再返回来测试该磁盘的写

Linux dd工具磁盘读写测试分析第4张

可以看出,这三种差别不大。但是和上面一步相差很大!都快成倍数关系了。

4. 怀着忐忑的心情,再次测试了下oflag=dsync参数。结果很快,没有想象的那么慢,将近10秒,虽然比上面大了不少。当然速度也慢了不少!

Linux dd工具磁盘读写测试分析第5张

5. 上面的写速度相差比较大,所以再次测试了读速度。总量没变,还是1G的数据,只是改变了块大小,发现速度截然不同!块变大,速度反而变小,小太多!

Linux dd工具磁盘读写测试分析第6张

估计是因为没有文件系统。

6. 不同的bs块大小测试,发现写速度变化不大

Linux dd工具磁盘读写测试分析第7张

二、对系统盘的目录/mnt/disk1进行测试

1. 在home目录下操作失败了

Linux dd工具磁盘读写测试分析第8张

2. of 必须指定文件,存不存在没关系。应该是sda盘已经格式化了文件系统有关。

Linux dd工具磁盘读写测试分析第9张

3. 把参数改为oflag=dsync,半天还没结束!

Linux dd工具磁盘读写测试分析第10张

过了很久几次查看没动静,约一小时后,再开了个shell 进来看,文件变成了4G多点!不应该是1G?

Linux dd工具磁盘读写测试分析第11张

4. 先ctrl+c退出原理的shell再测试下,不带后面的参数,再加上时间time的命令。比第二步(2.2)的速度稍有提高。

Linux dd工具磁盘读写测试分析第12张

5. 反复三种方式测试了一下

Linux dd工具磁盘读写测试分析第13张

速度基本上比较稳定。没有加参数速度稍微快一点点,而加参数conv=fdatasync 或者fsync这两种没区别。

而oflag=dsync后续再测。

6. 从1.5返回测试不同的块大小。时间和速度变化不大,和上面(2.5)对比变化也很小,证明开始推断是正确的。所以文件系统必须要安装

Linux dd工具磁盘读写测试分析第14张

7. 介于上面oflag=dsync的结果,我们再测试一下。

Linux dd工具磁盘读写测试分析第15张

上面又卡主了,约五分钟后,我新开了一个shell窗口,连续两次查1.img的大小,已经都4G了,还在增大。所以上面的shell窗口ctrl+c果断推出。

Linux dd工具磁盘读写测试分析第16张

8.读速度非常高,bs为16k是更大。

Linux dd工具磁盘读写测试分析第17张

到这里为止,我们可以得出一些结论

1.oflag=dsync是对物理数据(磁盘)的缓冲,不经过文件系统。而conv=fdatasync 或者conv=fsync是对文件系统的缓冲,其实字面f就是文件file;而前者data表示只缓存数据,后者数据和元数据都缓存。所以一般情况下都是安装了文件系统的,所以应选文件系统的参数,也可以默认不选择,差别不大。

2.bs块大小写磁盘,其值变化应该没多大影响。而对于,有文件系统的情况下,变大性能上升;但是对于物理裸盘,变大性能反而下降

当然只是目前测试的结果,可能还不够充分,后续有机会再完善,有问题也欢迎提出。

另,有关文件IO知识可以参考https://www.cnblogs.com/orange-CC/articles/12671487.html,来自本人博客;还有更多文件系统和内存管理的知识欢迎阅读!

免责声明:文章转载自《Linux dd工具磁盘读写测试分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue:app.vue中添加监听beforeunload事件,即当浏览器窗口关闭或刷新时删除vuex中的数据layui之ajax巨坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows访问Linux下的共享目录的配置方法

user安全级别 第一步:安装samba3(如果已经安装就跳过这一步) [root@rhce2 /]# yum groupinstall "CIFS file server" 第二步:修改配置文件 [root@rhce2 /]# vi /etc/samba/smb.conf 将security参数的值设为user(这是默认值) security =...

arm-linux的gdb移植

转载于:http://blog.chinaunix.net/uid-23381466-id-309369.html arm-linux的gdb移植分为两种情况.一种是交叉调试版。这一种模式是需要编译一个arm-linux版本gdbserver (GDB的stub模块).然后再编译一个X86版本交叉调试的gdb.为了与桌面版本身的gdb 区别开来,一般改名为...

linux中export的作用

 https://blog.csdn.net/damontive/article/details/50352722 参考:http://www.cnblogs.com/zhangze/articles/1832542.html以前一直觉得export可有可无,虽然知道export是干嘛的,不就是把本地变量变成全局变量么(实际中叫环境变量),但是感觉好像没有...

linux定时任务执行没结果,手动执行有结果问题总结

今天写了个脚本手动执行有结果,但是放到系统定时任务跑却没结果,之前也遇到这种问题解决了没记录后面又懵逼了一次~~~ 如下图: 手动执行有结果 放到定时任务中每五分钟执行一次 解决方法: 脚本中加载系统环境变量 source /etc/profile 如果不加入脚本定时任务可以这样写效果一样 */5 * * * * ./etc/profile;sh /f...

linux源码“.config”文件分析

转载于:http://www.cnblogs.com/amanlikethis/p/3641097.html 一、.config文件概述 .config文件是linux内核配置文件,当执行#make uImage编译生成内核时,顶层的Makefile会读取.config文件的内容,根据这个配置文件来编译所定制的内核。 二、.config文件关联 1 文件关...

Ubuntu Linux启用root用户登录

Ubuntu Linux有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起。对于其他Linux系统来 说,一般在安装过程就设定root密码,这样用户就能用它登录root帐户或使用su命令转换到超级用户身份。与之相反,Ubuntu默认安装时,并没有 给root用户设置口令,也没有启用root帐户。问题是...