我的Debian系统使用deadline调度程序。我习惯于在繁忙的时候使用ionice重新安排磁盘密集型作业的I/O优先级,这似乎很有帮助(但我没有任何确凿的证据)。
ionice命令页、内核文档和这个OpenSUSE文档都建议只有cfq调度程序考虑ionice干预。他们没有明确声明其他调度程序忽略它,但他们提到的唯一一个是cfq。
其他调度程序,特别是deadline,是否与ionice一起工作?
发布于 2014-10-08 17:23:34
不是的。ionice是一种指定优先级的机制。但是deadline忽略优先级,而只是对每个I/O操作强加一个过期时间,然后确保操作在满足到期时间之前成功。
这里有更多信息:截止日期I/O调度程序
最后期限调度程序的主要目标是保证请求的启动服务时间。为此,它对所有I/O操作规定了最后期限,以防止请求饥饿。除了排序队列(读和写)之外,它还维护两个最后期限队列。截止日期队列基本上按照其截止日期(过期时间)排序,而排序队列则按扇区号排序。在为下一个请求服务之前,截止期调度程序将决定使用哪个队列。读取队列被赋予更高的优先级,因为进程通常会阻塞读取操作。接下来,截止日期调度程序检查截止日期队列中的第一个请求是否过期。否则,调度程序将处理排序队列中的一批请求。在这两种情况下,调度程序还在排序队列中的所选请求之后提供一批请求。默认情况下,读取请求的过期时间为500 ms,写入请求在5秒内到期。
https://unix.stackexchange.com/questions/136226
复制相似问题