设为首页 收藏本站
查看: 880|回复: 0

[经验分享] Linux I/O测试

[复制链接]

尚未签到

发表于 2018-5-25 09:09:53 | 显示全部楼层 |阅读模式
  下面的测试方法受到缓存的影响,2.5寸,5400转的ATAT笔记本硬盘,不可能速度达到368MB/s,所以肯定先写缓存了
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test1 bs=64k count=1000
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 0.177868 s, 368 MB/s
  

  用/dev/urandom可写入随机数据
  time dd if=/dev/urandom of=./test1 bs=64k count=1000
  

  Linux 中直接 I/O 机制的介绍(此文有对linux direct I/O的精彩介绍)
  http://www.ibm.com/developerworks/cn/linux/l-cn-directio/
  

  使用oflag=direct表示使用DirectIO方式,速度降到33.6MB/S,比较符合实际情况
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test2 bs=64k count=1000 oflag=direct
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 1.94967 s, 33.6 MB/s
  

  real    0m1.953s
  user    0m0.000s
  sys     0m0.144s
  

  

  在dd命令结束前同步数据和元数据(metaData)
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test3 bs=64k count=1000 conv=fsync
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 2.83524 s, 23.1 MB/s
  

  real    0m2.839s
  user    0m0.000s
  sys     0m0.168s
  

  

  在dd命令结束前只同步数据
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test1 bs=64k count=1000 conv=fdatasync
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 2.78156 s, 23.6 MB/s
  

  real    0m2.785s
  user    0m0.004s
  sys     0m0.168s
  

  使用同步I/O,每次写都要物理写入磁盘(磁盘会狂响的^_^),巨慢
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test2 bs=64k count=1000 oflag=sync
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 48.4128 s, 1.4 MB/s
  

  real    0m48.416s
  user    0m0.000s
  sys     0m0.364s
  

  oflag=dsync只同步写数据
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test2 bs=64k count=1000 oflag=dsync
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 48.4673 s, 1.4 MB/s
  

  real    0m48.491s
  user    0m0.004s
  sys     0m0.380s
  

  

  非阻塞I/O, 可以调用不会永远阻塞的 I/O 操作,例如 open, read 和 write 。如果这种操作不能完成,则立即出错返回,应用程序需要主动重试
  steve@steve-Inspiron-6000:~/temp$ time dd if=/dev/zero of=./test5 bs=64k count=1000 oflag=nonblock
  1000+0 records in
  1000+0 records out
  65536000 bytes (66 MB) copied, 0.144059 s, 455 MB/s
  

  real 0m0.148s
  user 0m0.000s
  sys 0m0.128s
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-480848-1-1.html 上篇帖子: Linux通信命令 下篇帖子: linux恢复文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表