nice/renice 的优先级问题

nice/renice 的优先级问题

在我看来,整个良好/优先方案实际上并没有起到什么作用。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
10084 dick      39  19 1221848 225120   6128 S 407.6  1.4  23478:00 povrayws
 5311 dick      20   0 2904912 325728  40324 S 382.1  2.0 133:06.54 qtpovray

考虑到这两个作业,我预计当 qtpovray 繁忙时,povrayws 的 CPU 占用率为 0%。当我在 Windows 上运行此设置时,就会发生这种情况。

povrayws 是一个 CPU/FPU 密集型守护进程,将运行数月(构建动画)。如果计算机还有其他事情要做,我希望这个任务基本上停止。

qtpovray 是一个有时占用大量 CPU/FPU 的 GUI 作业,用于开发动画。如果要运行,它应该抢占守护进程并接近 800% 的 CPU。(如果守护进程未运行,它将占用 800% 的 CPU。)

我重新优化了 top 中的 povrayws,并运行 chrt -i --pid 0 10084以将其设置为空闲优先级。但他仍然更多的CPU 比交互式作业多。没有 I/O 来扰乱调度。它只是几兆内存和我能投入的尽可能多的 CPU。

再次,当我在 Windows 8 上运行此设置时,如果发生其他事情,povrayws.exe 将停留在 0% 附近。

我想知道是不是我的 i7 的超线程让调度程序感到困惑,但我在六核 i5 上看到了同样的行为。(在 i5 上,Minecraft 正在与空闲守护进程争夺 CPU。)

我记得,20 年前,这个功能还是可以正常工作的,但最近 5 年,我注意到了这种“不正常”的行为。它终于让我恼火到不得不问,

有人见过空闲任务实际上让位于更高优先级吗? 800% CPU、0% I/O 空闲任务的情况相当罕见。

相关内容