当前位置:嗨网首页>书籍在线阅读

12-IO优先级

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.4.3 I/O优先级

除了调度优先级,Linux还支持进程指定I/O优先级。I/O优先级会影响进程的I/O请求优先级。内核I/O调度器(参考第4章)总是优先响应来自于高I/O优先级的请求。

缺省情况下,I/O调度器通过进程的nice value决定I/O优先级,因此,设置nice value会自动改变I/O优先级。但是,Linux内核还提供了两个系统调用来显式设置或获取I/O优先级,且和nice value无关:

270.png 糟糕的是,glibc没有提供对这两个系统调用的用户空间接口。没有glibc的支持,函数用起来是相当麻烦的。在glibc开始支持的时候,接口有可能和系统调用不同。在这之前,有两个可移植方法来操作进程I/O优先级:通过nice value,或者类似于类似ionice的工具,ionice是util-linux包的一部分。[1]

不是所有的I/O调度器都支持I/O优先级,特别地,完全公平队列(Complete Fair Queuing,CFQ)I/O调度器支持I/O优先级,其他标准调度器不支持。如果当前I/O调度器不支持I/O优先级,调用时会直接忽略,而不会给出任何提示信息。