为什么用户可以增加进程的 nice 但减少却需要 root 权限?

为什么用户可以增加进程的 nice 但减少却需要 root 权限?

我查看了一下,发现一个程序占用了大约 80-90% 的 CPU。我提高了 nice 值,看看能否降低负载。然后,我尝试将同一进程的 nice 值降低回初始水平,结果被告知我没有适当的权限。这里所需权限的差异是否有充分的理由?

答案1

是的。当系统中的每个用户都有可能降低其进程的优先级时,每个用户都可能导致其他进程挨饿。

Linux 内核中的进程优先级确实有一定的意义。如果你给一个进程赋予 nice 值,-20它将获得大量的 CPU 时间。这就是为什么只能root降低这些值的原因。

添加建议来自伊莱亚·卡根

为什么用户无法让他们的进程恢复到他们自己启动时的良好程度?

关键是,系统没有注意到WHO增加了友善度。所以,没有机制可以查明是否root增加了友善度。

另一种方法是:普通用户不应该能够覆盖特权用户的操作。如果root登录后他想将进程的优先级更改为20:他可以,并且应该禁止您撤消该更改。直到内核不记得是谁做了优先级更改,您才会被禁止。

也许有一天 Linux 内核开发人员会将该功能添加到内核代码中。您可以提出功能请求。但是,请注意,内核开发人员不会仅仅因为它是凉爽的

相关内容