设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

如何提高Linux下块设备IO的整体性能?(5)

发布时间:2021-01-04 22:01 所属栏目:53 来源:网络整理
导读:只有当starved = writes_starved的时候,deadline才回去处理写请求.可以认为这个值是用来平衡deadline对读写请求处理优先级状态的,这个值越大,则写请求越被滞后处理,越小,写请求就越可以获得趋近于读请求的优先级. f

只有当starved >= writes_starved的时候,deadline才回去处理写请求.可以认为这个值是用来平衡deadline对读写请求处理优先级状态的,这个值越大,则写请求越被滞后处理,越小,写请求就越可以获得趋近于读请求的优先级.

front_merges:当一个新请求进入队列的时候,如果其请求的扇区距离当前扇区很近,那么它就是可以被合并处理的.

而这个合并可能有两种情况:

  1. 是向当前位置后合并
  2. 是向前合并.

在某些场景下,向前合并是不必要的,那么我们就可以通过这个参数关闭向前合并.默认deadline支持向前合并,设置为0关闭.

3、noop调度器

noop调度器是最简单的调度器.它本质上就是一个链表实现的fifo队列,并对请求进行简单的合并处理.调度器本身并没有提供任何可疑配置的参数.

?4、各种调度器的应用场景选择

根据以上几种io调度算法的分析,我们应该能对各种调度算法的使用场景有一些大致的思路了.

从原理上看,cfq是一种比较通用的调度算法,它是一种以进程为出发点考虑的调度算法,保证大家尽量公平.

deadline是一种以提高机械硬盘吞吐量为思考出发点的调度算法,尽量保证在有io请求达到最终期限的时候进行调度.非常适合业务比较单一并且IO压力比较重的业务,比如数据库.

而noop呢?其实如果我们把我们的思考对象拓展到固态硬盘,那么你就会发现,无论cfq还是deadline,都是针对机械硬盘的结构进行的队列算法调整,而这种调整对于固态硬盘来说,完全没有意义.

对于固态硬盘来说,IO调度算法越复杂,额外要处理的逻辑就越多,效率就越低.

所以,固态硬盘这种场景下使用noop是最好的,deadline次之,而cfq由于复杂度的原因,无疑效率最低.

get运维新技能,怎么总是抢先一步?

“置顶”高效运维公众号,第一时间看到相关好文章就可以啦!那怎么“置顶呢“?

请打开高效运维公众号,点击右上角小人,将“置顶公众号”滑到右边即可.

文/邹立巍
来自高效运维微信公众号

 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读