6.4.2. 最后期限 I/O 调度程序


最后期限 I/O 调度程序尝试为请求提供保证的延迟。请注意只有当请求进入 I/O 调度程序后方开始计算延迟(这个区别非常重要,因为可能会让程序进入睡眠等待模式以便释放请求描述符)。默认情况下读取比写入的优先权高,因为程序更容易因读取 I/O 而被阻断。
最后期限调度以批形式分派 I/O。一批是一些列连续的读或者写 I/O,按 LBA 顺序递增(单向递增)。处理完每批进程后,I/O 调度程序会检查是否有写请求已等待太久,然后决定是否开始新一批读或者写操作。只在开始新一批时检查过期请求的请求 FIFO 列表。因此,如果选择批写入,且同时有过期的读取请求,那么只有在批写入完成后方可执行读取请求。

可调参数

fifo_batch
这样可以决定单一批次中发出的读取或者写入数。默认为 16。设为更高的数值可获得更好的流量,但也会增加延迟。
front_merges
如果您找到负载永远不会生成前合并,则您可以将这个可调参数设定为 0。除非您已了解这个检查的代价,建议将其设定为默认值,即 1
read_expire
这个可调参数可让您已毫秒为单位设定读取操作速度。默认将其设定为 500 毫秒(即半秒)。
write_expire
这个可调参数可让您已毫秒为单位设定写入操作速度。默认将其设定为 5000 毫秒(即五秒)。
writes_starved
这个可调参数控制处理单一写入批之前可以处理多少读取批。这个值越高,越倾向于读取操作。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.