Используется ли 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 -u намного больше, чем количество запущенных процессов, вызывает проблемы?
  • Процесс специфический ulimit все еще низкий после изменений в мягкие и жесткие ulimits
  • Как я могу определить, какое индивидуальное ограничение ulimit имеет процесс?
  • Как дросселировать каждый процесс ввода-вывода до максимального предела?
  • ulimit & rlimit в Linux, это то же самое?
  • Как проверить использование ulimit
  • Настройки ulimit в /etc/security/limits.conf не действуют для пользователей
  • «Слишком много открытых файлов ssh», когда количество открытых файлов намного ниже ulimit
  • 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 - лучшая ОС в мире.