ionice idle 被忽略

Fer*_*ora 5 ubuntu ionice

我已经测试ionice命令一段时间了,idle在大多数情况下似乎忽略了(3) 模式。

我的测试是同时运行这两个命令:

  • <big folder>
  • 离子 -c 3 du <another big folder>

如果我检查两个进程,iotop我看不到每个进程的 io 利用率百分比有什么不同。

为了提供有关 CFQ 调度程序的更多信息,我使用的是 3.5.0 linux 内核。

我开始做这个测试是因为每次updatedb.mlocate在我的 Ubuntu 12.10 机器上执行每日 cron 作业时我都在试验系统延迟。

如果您检查该/etc/cron.daily/mlocate文件,您会发现该命令的执行方式如下:

/usr/bin/ionice -c3 /usr/bin/updatedb.mlocate

此外,有趣的是,每当我的系统出于某种原因开始使用交换内存时,updatedb.mlocateio 进程的调度速度比kswapd0进程快,然后我的系统就会卡住。

一些建议?

参考:

小智 5

ionice仅当您使用 CFQ 内核调度程序时才有效。发行版似乎默认为deadline调度程序。

查看/sys/block/xvdh/queue/scheduler您已启用哪些。就是方括号里的那个。


Hau*_*ing 0

我认为这是预期的行为 - 至少如果两个进程的 I/O 共享接近 100% 的话。应该有很小的差异,但 100% 是极限,如果您已经达到 96%,那么只能得到 98% 中 I/O 结果的一半。没什么大不了。

绝对转移值中应该可以辨别出严重的差异。这种差异也可能取决于 CPU 优先级。

I/O prioidle并不意味着系统完全不受影响。如果非空闲进程不消耗全部可用 I/O,则优先空闲进程也会获得 I/O 带宽。因此,可能经常发生这样的情况:非空闲 prio 应用程序需要 I/O 并且确实获得了下一个槽,但由于空闲 prio 进程正在执行 IOP,因此延迟会增加。进程引起的 I/O 越少,空闲优先级进程对其的影响就越大。因此,它可能有助于降低 cron 进程的 CPU 优先级(甚至可能使其成为 SCHED_IDLE)。

不过我不知道交换问题。