Встановіть задане значення за замовчуванням для даного користувача (limit.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 нестабільний (uptodate).

Контекст:

У мене в роботі є локальна мережа: у кожного є свій комп’ютер, і кожен може створити обліковий запис на чужий машині, якщо це подобається. Основне правило полягає в тому, що якщо ви працюєте на чужому комп’ютері, будь ласка, приємні ваші процеси ( nice 19).

Я хотів би встановити приємне значення для даного користувача для 19 раз і назавжди.


Відповіді:


13

Я вважаю, що правильний формат:

@users      -       priority        10
username    -       priority        19

Це приклад налаштувань, які я використовую у виробництві (очевидно, з реальними користувачами / групами).

niceПараметр , щоб визначити мінімальне значення добре (тобто пріоритет максимум) хто - то може встановити свій процес, а не їхня пріоритет по замовчуванням.


2
Перш за все, дякую за вашу відповідь (також дякую, @mattdm). Здається, цей метод працює. Однак я все ще плутаю різницю між "приємним" і "пріоритетним": обидва відображаються "вгорі", але значення, вказане для хорошого, - це те, яке я повинен встановити за пріоритетом. Мені це виглядає трохи дивно. Також чи означає більший пріоритет (скажімо, 39 замість 20) менш важливий процес, як це приємно? Дякую.
Олексій

4
Приємним пріоритетом 'NI' вгорі є те, що було б встановлено встановленням меж priority. Це буде пріоритет за замовчуванням для будь-яких процесів для цього користувача / групи, коли він входить. Ви можете встановити це значення лише між -20 та 20. Значенням "PR" вгорі є фактичний пріоритет планувальника, який визначається декількома фактори за допомогою планувальника ядра.
jsbillings

1
Крім того, так, більший пріоритет означає, що менша ймовірність планувати отримання циклів процесора.
jsbillings

1
Гаразд, велике спасибі за цю розбірливість. До речі, я не пробував інших методів (за участю andабо cgroup), які можуть бути кращими в інших ситуаціях, ніж у мене (необхідність постійної перевірки або управління багатьма користувачами - що в моєму випадку трохи занадто).
Алекс

Хмммм ... Це працювало для одного користувача, але не для іншого на моїй машині Ubuntu. Я повернусь, якщо зможу розібратися, чому. ;-)
Кен Шарп

3

Я можу підтвердити, що це також не працює в моїй системі. Документи кажуть "ядро 2.6.11 і вище", і я перебуваю на Fedora rawhide з ядром 2.6.38-rc6. Цікаво, чи він залежить від планувальника, і не працює він із введеним в 2.6.23 CFQ ("Повністю справедливим планувальником").

Щось, що спрацює, - це неможливо шукати-шукати через те, що його - жахливо-ім'я and- авто-хороший демон. Дивіться http://and.sourceforge.net/ . Це доступно у Fedora yum install and, але, на жаль, це не є в EPEL. І це в Debian теж: apt-get install and.

Якщо ви використовуєте сучасний дистрибутив, є ще кращий шлях. Ви можете використовувати інструменти з libcgroup, щоб налаштувати групу на рівні ядра, що обмежує частки процесора, та автоматично "класифікувати" процеси цього користувача в цю групу. За допомогою цього ви також можете встановити пріоритет вводу / виводу та обмежити використання пам'яті (включаючи частку кеш-диска).


Я погоджуюся, що використання cgroups - це відмінний спосіб обмежити інших людей від прививання всіх циклів процесора на вашому комп’ютері. На жаль, системи, які я підтримую (RHEL5), не мають ядер, які підтримують його, тому я повинен дотримуватися коригування пріоритету. Після оновлення до RHEL6, я впевнений, що ми матимемо досить складні налаштування груп.
jsbillings
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.