Jer*_*oen 9 linux priority nice ulimit
我prlimit在 Ubuntu 中使用我的沙箱来做一些资源限制,这非常有帮助。但是,我不太确定如何处理RLIMIT_NICE. 文档说:
RLIMIT_NICE(自 Linux 2.6.12 起,但请参阅下面的 BUGS)指定可以使用 setpriority(2) 或 nice(2) 将进程的 nice 值提高到的上限。
但是,根据getpriority(2),只有首先由超级用户拥有的进程才能提高它的价值。但如果是这种情况,该RLIMIT_NICE值不会增加太多功能,因为特权用户RLIMIT无论如何都可以任意降低或提高值。
所以我不明白如何使用或解释RLIMIT_NICE. 对于非特权用户来说,整个事情似乎毫无用处,因为他们一开始无法提高优先级,并且将其设置为低于当前优先级是没有意义的。不过,对于超级用户它并没有真正添加任何东西要么是因为nice,和RLIMIT_NICE软,硬限制,可以任意提高。
那么背后的想法是RLIMIT_NICE什么?
小智 7
事实上,RLIMIT_NICE允许您绕过基本规则,即“只有由 root 拥有的进程才能提高其 nice 值”。
示范:
# ulimit -e 30
# su nobody
$ nice -n -10 top
Run Code Online (Sandbox Code Playgroud)
您将看到您的top流程运行良好-10。
现在,如果你尝试nice -n -11 top,它将与正派经营0,因为-11没有被允许RLIMIT_NICE=30。
手册页中给出了公式:允许的最大niceness 是20-rlimit。所以:
0 意思是“你可以将友好度提高到 20”,也就是没用;20 意思是“你可以将niceness提高到0”,如果你降低优先级,你可以回到0;40表示“您可以启动最多nice -n -20.