Используется ли RLIMIT_NICE?

Я использую prlimit в Ubuntu, чтобы сделать некоторые ограничения ресурсов в своей песочнице, которая была очень полезна. Однако я не совсем уверен, что делать с RLIMIT_NICE . Документы говорят:

RLIMIT_NICE (начиная с Linux 2.6.12, но см. Ниже). Указывает потолок, к которому может быть добавлено хорошее значение процесса, используя setpriority (2) или nice (2).

Однако, согласно getpriority (2) , процесс может повысить его привлекательную ценность только в том случае, если он принадлежит суперпользователю в первую очередь. Но если это так, значение RLIMIT_NICE не добавит слишком никакой функциональности, потому что привилегированный пользователь может в любом случае произвольно снизить или RLIMIT значения RLIMIT .

Поэтому я не понимаю, как использовать или интерпретировать RLIMIT_NICE . Для не-привилегированных пользователей все кажется бесполезным, потому что они не могут повысить приоритет в первую очередь, и нет смысла устанавливать его ниже текущего приоритета. Однако для суперпользователей это действительно ничего не добавляет, потому что nice и жесткие ограничения RLIMIT_NICE могут быть произвольно подняты.

Так в чем же идея RLIMIT_NICE ?

  • Настройка ulimit `max open files` для демонтированного мастер-процесса nginx
  • Измените «Мягкий предел» «Максимальных процессов»
  • Как определить временные ограничения для группы пользователей за сеанс
  • Команда ulimit не найдена (без sudo) и ошибка - coredumpsize: не может установить ограничение (операция не разрешена)
  • Как убить процессы, если не было превышено ограничение root и ограничение nproc?
  • Пределы дескриптора файла в / etc / system vs /etc/sysctl.conf vs /etc/security/limits.conf в Solaris
  • Ограничение Openfiles автоматически уменьшается при передаче 2 ^ 21, Ubuntu 16.04
  • Постоянное изменение размера стека для каждого процесса
  • One Solution collect form web for “Используется ли RLIMIT_NICE?”

    Фактически, RLIMIT_NICE позволяет обойти основное правило, в котором говорится, что «процесс может повысить его полезное значение только в том случае, если он принадлежит root».

    Демонстрация:

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

    Вы увидите, что ваш top процесс работает с тонкостью -10 .

    Теперь, если вы попробуете nice -n -11 top , он будет работать с любовью 0 , потому что -11 не разрешен RLIMIT_NICE=30 .

    Формула приведена в man-странице: максимальная доступность – 20-rlimit . Так:

    • 0 означает «вы можете повысить привлекательность до 20», ака бесполезно;
    • 20 означает «вы можете повысить привлекательность до нуля», что позволяет вернуться к 0, если вы понизили свой приоритет;
    • 40 означает, что вы можете запускать процессы до nice -n -20 .
    Linux и Unix - лучшая ОС в мире.