我的 Debian Wheezy 系统使用deadline
调度程序。我习惯于ionice
在繁忙时重新安排磁盘密集型作业的 I/O 优先级,据说这似乎有帮助(但我没有任何确凿的证据)。
这ionice
联机帮助页,内核文档和这个 OpenSUSE 文档所有这些都表明只有cfq
调度程序考虑ionice
干预。他们没有明确指出其他调度程序会忽略它,但他们唯一提到的是cfq
.
特别是其他调度程序是否可以deadline
与 一起工作ionice
?
答案1
No.ionice
是一种指定优先级的机制。但deadline
忽略优先级,而是简单地对每个 I/O 操作施加过期时间,然后确保操作在满足过期时间之前成功。
更多信息请点击这里:最后期限 I/O 调度程序
Deadline 调度程序的主要目标是保证请求的开始服务时间。它通过对所有 I/O 操作施加最后期限来防止请求不足来实现这一点。除了排序队列(读和写)之外,它还维护两个截止时间队列。截止日期队列基本上按截止日期(过期时间)排序,而排序队列则按扇区号排序。
在服务下一个请求之前,截止时间调度程序决定使用哪个队列。读取队列被赋予更高的优先级,因为进程通常会阻塞读取操作。接下来,截止时间调度程序检查截止时间队列中的第一个请求是否已过期。否则,调度程序将从排序队列中处理一批请求。在这两种情况下,调度程序还会为排序队列中所选请求之后的一批请求提供服务。
默认情况下,读请求的过期时间为 500 毫秒,写请求的过期时间为 5 秒。