Установить значение по умолчанию для данного пользователя (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 (обновление).

Контекст:

На моей работе у нас есть локальная сеть: у каждого свой компьютер, и каждый может создать учетную запись на чужой машине, если захочет. Практическое правило заключается в том, что если вы работаете на чужом компьютере, пожалуйста, оцените ваши процессы ( nice 19).

Я хотел бы установить значение по умолчанию для данного пользователя равным 19 раз и навсегда.

Alex
источник
Несколько связано: unix.stackexchange.com/questions/209398/…
Кусалананда

Ответы:

13

Я считаю, что правильный формат:

@users      -       priority        10
username    -       priority        19

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

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

jsbillings
источник
2
Прежде всего, спасибо за ваш ответ (спасибо, @mattdm). Кажется, этот метод работает. Тем не менее, я все еще смущен разницей между «nice» и «priority»: оба отображаются «top», но значение, указанное для nice, - это то, которое я должен установить для приоритета. Это выглядит немного странно для меня. Кроме того, больший приоритет (скажем, 39 вместо 20) означает менее важный процесс, чем для хорошего? Спасибо.
Алекс
4
Хороший приоритет 'NI' в верхней части - это то, что будет установлено priorityнастройкой пределов . Это будет приоритет по умолчанию для любых процессов для этого пользователя / группы, когда они входят в систему. Вы можете установить его в диапазоне от -20 до 20. Значение 'PR' в верхней части - это фактический приоритет планировщика, который определяется несколькими факторы планировщика ядра.
jsbillings
1
Кроме того, да, более высокий приоритет означает, что с меньшей вероятностью будет запланировано получение циклов ЦП.
jsbillings
1
Хорошо, большое спасибо за это устранение неоднозначности. Кстати, я не пробовал другие методы (с использованием andили cgroup), которые могли бы быть лучше в других ситуациях, чем мои (необходимость в постоянной проверке или управлении многими пользователями - что в моем случае слишком много).
Алекс
Хмммм ... Это работало для одного пользователя, но не для другого на моей машине с Ubuntu. Я вернусь, если смогу понять почему. ;-)
Кен Шарп
3

Я могу подтвердить, что это не работает в моей системе. В документах написано "ядро 2.6.11 и выше", и я нахожусь на сыром коже Fedora с ядром 2.6.38-rc6. Интересно, зависит ли это от планировщика и не работает с введенным в 2.6.23 CFQ («Полностью честный планировщик»).

Тем не менее, то, что будет работать, - это невозможное для поиска из-за его ужасного имени and- демон auto-nice. Смотрите http://and.sourceforge.net/ . Это доступно от Fedora с yum install and, но, к сожалению, не в EPEL. И это в Debian тоже: apt-get install and.

Однако, если вы используете современный дистрибутив, есть еще лучший способ. Вы можете использовать инструменты из libcgroup для настройки уровня ядра контрольной группы предельной доли ЦП, и автоматически «классифицировать» процессы данного пользователя в эту контрольную группу. При этом вы также можете расставить приоритеты ввода / вывода и ограничить использование памяти (включая долю дискового кэша).

mattdm
источник
Я согласен с тем, что использование cgroups - это отличный способ запретить другим людям загружать все циклы процессора на вашем компьютере. К сожалению, системы, которые я поддерживаю (RHEL5), не имеют ядер, которые поддерживают его, поэтому я должен придерживаться настройки приоритета. После обновления до RHEL6, я уверен, у нас будут довольно сложные настройки cgroups.
jsbillings