RLIMIT_NICE 有什么用吗?

RLIMIT_NICE 有什么用吗?

我在用prlimit在 Ubuntu 中对我的沙箱进行一些资源限制,这非常有帮助。但是,我不太确定该怎么办RLIMIT_NICE。文档说:

RLIMIT_NICE(自 Linux 2.6.12 起,但请参阅下面的 BUGS) 指定使用 setpriority(2) 或 Nice(2) 可以将进程的 Nice 值提高到的上限。

然而,根据获取优先级(2),只有首先由超级用户拥有的进程才能提高其良好价值。但如果是这种情况,该RLIMIT_NICE值不会添加太多功能,因为特权用户RLIMIT无论如何都可以任意降低或更高的值。

所以我不明白如何使用或解释RLIMIT_NICE.对于非特权用户来说,整个事情似乎毫无用处,因为他们首先无法提高优先级,并且将其设置为低于当前优先级是没有意义的。然而,对于超级用户来说,它也没有真正添加任何东西,因为可以任意提高软限制和硬限制niceRLIMIT_NICE

那么背后的想法是什么RLIMIT_NICE

答案1

事实上,RLIMIT_NICE它允许您绕过“只有由 root 拥有的进程才能提高其好值”这一基本规则。

示范:

# ulimit -e 30
# su nobody
$ nice -n -10 top

您将看到您的top进程运行良好-10

现在,如果您尝试nice -n -11 top,它会很好地运行0-11因为RLIMIT_NICE=30.

联机帮助页中给出了公式:允许的最大友好度为20-rlimit。所以:

  • 0意思是“你可以将好感度提高到20”,又名无用;
  • 20意思是“你可以将niceness提高到0”,如果你降低了优先级,它可以让你回到0;
  • 40意思是“您最多可以启动进程nice -n -20

相关内容