设置给定用户的默认nice值(limits.conf)


12

有人可以告诉我如何设置用户的默认值nice(如所示top)吗?我发现/etc/security/limits.conf是放置该位置的地方,但是如果我放以下任何一个:

username_of_a_guy  -  nice  19
username_of_a_guy  soft  nice  19
username_of_a_guy  hard  nice  19

它不起作用(应该起作用,对吗?)。

请注意,自那时以来,我已经重新启动。

非常感谢您的帮助。我正在使用debian不稳定(最新)。

内容:

在我的工作中,我们有一个本地网络:每个人都有自己的计算机,并且每个人都可以在其他人的计算机上创建一个帐户(如果愿意)。经验法则只是,如果您在其他人的计算机上工作,请完善您的流程(nice 19)。

我想一次将给定用户的默认nice值设置为19。


Answers:


13

我相信正确的格式是:

@users      -       priority        10
username    -       priority        19

这是我在生产环境中使用的设置的一个示例(显然对于真实用户/组)。

nice设置是确定某人可以将其流程设置为的最小尼斯值(即最大优先级),而不是其默认优先级。


2
首先,感谢您的回答(也感谢@mattdm)。看来此方法有效。但是,我仍然对“ nice”和“ priority”之间的区别感到困惑:两者都以“ top”显示,但是为nice引用的值是我必须为优先级设置的值。我觉得有点奇怪。另外,优先级较高(例如39而不是20)是否意味着过程的重要性降低了(而不是因为这样做的好处)?谢谢。
亚历克斯(Alex)

4
最上面的“ NI”优先级是限制priority设置所设置的优先级。这将是该用户/组登录时任何进程的默认优先级。您只能将其设置为-20到20之间。顶部的“ PR”值是实际的调度程序优先级,它由多个进程确定。内核调度程序的影响因素。
jsbillings 2011年

1
同样,是的,较高的优先级意味着不太可能安排它获取CPU周期。
jsbillings 2011年

1
好的,非常感谢您的消除歧义。顺便说一句,我还没有尝试过其他方法(涉及andcgroup),而在其他情况下可能比我的方法更好(需要连续检查或管理许多用户-在我的情况下太多了)。
亚历克斯(Alex)

嗯...这只对一个用户有效,而对我的Ubuntu机器上的另一个用户无效。如果可以找出原因,我会回来的。;-)
肯·夏普

3

我可以确认那在我的系统上也不起作用。文档说“内核2.6.11及更高版本”,而我使用的内核是2.6.38-rc6的Fedora生皮。我想知道它是否依赖于调度程序,并且不能与2.6.23中引入的CFQ(“完全公平的调度程序”)一起使用。

但是,由于它的可怕名称而无法搜索的东西and-自动导航守护程序将起作用。参见 http://and.sourceforge.net/。可以从Fedora的处获得yum install and,但不幸的是,它似乎不在EPEL中。它也在Debian中:apt-get install and

但是,如果您使用的是现代发行版,那么还有更好的方法。您可以使用libcgroup中的工具来设置限制CPU份额的内核级cgroup,并将该用户的进程自动“分类”到该cgroup中。这样,您还可以确定I / O的优先级,并限制内存使用量(包括磁盘缓存的共享)。


我同意使用cgroups是限制其他人避免占用计算机上所有CPU周期的绝佳方法。可悲的是,我支持的系统(RHEL5)没有支持它的内核,因此我必须坚持调整优先级。一旦我们更新到RHEL6,我确定我们会有一些相当复杂的cgroup设置。
jsbillings 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.