iotop 和 ionice -p 显示同一进程的不同类别/优先级

iotop 和 ionice -p 显示同一进程的不同类别/优先级


ionice -c2 -n7 <PID>在 I/O 密集型进程 (VirtualBox VM) 上运行并检查结果后ionice -p <PID>,会显示出best-effort: prio 7预期结果。

但是,当通过它监视所有进程的总体磁盘 I/O 时,iotop它会在列中显示该进程PRIO的值be/4,我认为这意味着美东时间-e努力和级别(优先级)4,这是平均优先级,不是预期的。

有人可以评论一下为什么 ionice 和 iotop 显示之间存在差异吗?除了使用 之外,还有其他方法可以验证给定进程的实际 I/O 优先级吗ionice -p

据我了解,有/proc/<pid>/io但它只显示读取和写入的字节/字符,而不显示优先级,参见。在没有 iotop 的情况下了解哪些进程进行 I/O
如何查看进程的IO优先级?仅列出ionice -p

为了完整起见,这是在带有 iotop 0.3.2 的 RHEL 6.7 上,调度程序是默认的 CFQ。

答案1

看来我已经找到了部分答案。默认情况下iotop显示所有进程和线程,我通常通过它运行它,iotop -o仅显示执行 I/O 的线程和进程。显示的 VirtualBox 进程be/4实际上是一个线程,当我运行iotop -p <pid>我更改的 PIDionice时,它会正确显示be/7预期的内容。

了解为什么该进程的一个线程具有不同的 I/O 类/优先级仍然很有趣,但我的 ionice 没有-P选项来更改进程组的 I/O 类/优先级。如果有人知道解决方法/解决方案,那就太好了。

相关内容