我的Linux使用截止日期算法进行I/O调度。其中一个参数是front_merges参数在/sys/block/sda/queue/iosched/front_merges下。默认情况下,它被设置为1,这意味着前面的合并可能会发生。如果不期望前端合并发生,则可以将其设置为0以获得性能提升。
front_merges
/sys/block/sda/queue/iosched/front_merges
发布于 2016-02-06 14:27:31
例如,当您在文件中读取时,从开始到结束都是这样做的。因此,将请求合并到相同或相邻的块是有益的。这称为回退合并,因为更新的请求是在现有请求的后面添加的。在截止日期调度程序中始终启用这一功能。
更不常见的是,您以相反的顺序读取块,并在现有请求的前面添加了一个更新的请求。
这两种方法都会产生开销,以检查合并是否合适。有了反向合并,它就有了回报,而前端合并则更多地取决于您的工作负载。
除了修改和重新编译内核之外,我不知道有任何方法来分析这一点。有趣的是,在至少5.2雷亚尔之前,默认情况下front_merges被关闭。在最近的RHEL版本中,默认情况下它是打开的。我就这样不干了。
https://stackoverflow.com/questions/35241737
相似问题