我的Debian Wheezy系统使用deadline
调度程序。我习惯于ionice
在繁忙的时间重新安排磁盘密集型作业的I / O优先级,而且这似乎有所帮助(但我没有确凿的证据)。
该ionice
手册页,核心文件和本文件的OpenSUSE都表明,只有cfq
调度考虑ionice
干预措施。他们没有明确声明其他调度程序会忽略它,但是他们提到的唯一一个是cfq
。
特别是其他调度程序是否deadline
与之合作ionice
?
我的Debian Wheezy系统使用deadline
调度程序。我习惯于ionice
在繁忙的时间重新安排磁盘密集型作业的I / O优先级,而且这似乎有所帮助(但我没有确凿的证据)。
该ionice
手册页,核心文件和本文件的OpenSUSE都表明,只有cfq
调度考虑ionice
干预措施。他们没有明确声明其他调度程序会忽略它,但是他们提到的唯一一个是cfq
。
特别是其他调度程序是否deadline
与之合作ionice
?
Answers:
编号ionice
是一种用于指定优先级的机制。但是deadline
忽略优先级,而是简单地在每个I / O操作上加上一个到期时间,然后确保在满足到期时间之前该操作成功。
此处的更多信息:截止日期I / O调度程序
截止时间调度程序的主要目标是保证请求的启动服务时间。它通过对所有I / O操作强加最后期限来防止请求饥饿。除了排序的队列(读取和写入队列)之外,它还维护两个截止期限队列。截止时间队列基本上按其截止时间(到期时间)排序,而排序后的队列则按扇区号排序。
在处理下一个请求之前,最后期限调度程序决定要使用哪个队列。读取队列的优先级更高,因为进程通常在读取操作时阻塞。接下来,截止期限调度程序检查截止期限队列中的第一个请求是否已过期。否则,调度程序将处理来自已排序队列的一批请求。在这两种情况下,调度程序都会在已排序队列中选择的请求之后处理一批请求。
默认情况下,读取请求的有效时间为500毫秒,写入请求的有效时间为5秒。