大话存储-学习总结6-系统IO路径及优化

本文详细探讨了主机端IO路径,从应用程序层、文件系统层、卷管理层到设备驱动层,分析了IO路径中的缓存机制、读写惩罚、一致性问题以及优化方法。同时,介绍了如何通过调整参数如O_DIRECT、Queue Depth和Queue Length来改善IO性能,并提到了监控工具如iostat和blktrace的作用。此外,文章还强调了在SSD存储时代,针对Queue优化的重要性。
摘要由CSDN通过智能技术生成

理解主机端IO路径架构

应用程序层

1. NFS下的缓存机制

  • 默认mount参数下的IO
    默认条件下使用异步(async)方式,rsize=wsize=65535。内核不会透传程序的IO给NFS Server,对于写IO会延缓执行,积累一定的时间以便合并上层的IO。不管读还是写,async方式都会具有一定的效果,尤其是连续的IO地址。
    Linux下使用NFS,对于写操作,不管offset是否为Page或者512B对其,都没有任何写惩罚存在,对于读操作,也只在随机读的情况下出现了读惩罚,其他任何情况下都没有惩罚.

可以使用dd命令测试,dd是一个使用同步调用+buffered IO模式的程序.
dd if=/mnt/3 of=/dev/null bs=1500 count=100
dd为同步调用,到了底层,内核将dd的写IO数据合并,并且以异步的方式高效的发送给NFS服务器.

  • 指定同步(sync)参数
    需要了解,内核的异步过程,只对Buffered IO模式下的同步写、异步写、异步读有意义.
    对于读立即执行,不一定表示不可以进行Prefetch和Cache Hit操作,但是对于写立即执行,却绝对不可以将待写的数据缓存起来延迟处理。
  • 指定rsize/wsize参数
    rsize/wsize,对于NFS的IO逻辑没有任何影响&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值