我最近了解到流程的美好价值。如果我正在运行用户程序,我应该将nice值设置得尽可能低吗?这会让我的进程运行得更快吗?
答案1
启动的程序的nice-值通常为零,即它不高于或低于系统上运行的大多数其他进程的nice-值。 Nice-Value 修改进程的调度优先级。
非特权用户可能仅有的指定好值降低它们自己的进程的调度优先级(即使它们“更好”)。
调度优先级较高的进程不一定会运行快点与较低的调度优先级相比,但是随着内核的运行队列变得更长(当许多并发进程在繁忙的系统上争夺 CPU 时间时)和负载(这是衡量运行队列的长度)增加,与队列中的其他进程相比,它有更大的机会被安排执行。它将有可能运行更频繁地。
否则的话闲置的在系统中,运行具有高nice-value 的进程与运行具有低nice-value 的进程没有什么不同。不管怎样,它都会获得 100% 或接近 100% 的 CPU 利用率。它不会运行得更快或更慢。
对于非特权用户来说,nice
和renice
实用程序是用于降低某个进程的调度优先级的实用程序,以对其他人友善。
根用户可以增加正在运行的进程的调度优先级,或者以更高的值启动进程。
在我的(OpenBSD)系统上,唯一以较高的调度优先级运行的进程是ntpd
(计时守护进程)和sndiod
(OpenBSD 上的音频/MIDI 服务器),即需要能够“实时”运行的进程或接近它,而无需等待其他进程完成其工作。
答案2
简短回答
你不能(作为普通用户),因为这是一个坏主意。
长答案
大多数时候这没有什么区别(如果它是唯一正在运行的进程,或者如果正在运行的线程总数小于 CPU 核心数)。
当它确实产生影响时,过程将不会很好。它会占用你的处理器。计算机将开始变得无响应。
更长的答案:
唯一有意义的时候是对于实时进程来说,减少 Nicenese 是有意义的。这是针对需要在一定时间范围内完成工作的流程。这些过程需要写得漂亮(而不是nice
)。那就是做那里的工作然后放弃处理器。您可能不想摆弄这个。无论如何,这可能是不需要的,因为表现良好的进程的动态优先级会增加。 (请注意,还有实时优先级(请参阅实时调度程序),甚至更加极端。您可能永远不想触及这些优先级。特别是在生产系统上。这是一个正在做重要事情的系统。)