Я просто искал некоторые разъяснения относительно ценности процесса или, возможно, совета, если я все делаю неправильно.
Скажем, у меня есть пара десятков процессов веб-сервера на одной машине, и я беспокоюсь о том, что любой из них сработает и заберет все ресурсы системы. Мне сразу приходит в голову любезность - я бы дал им всем положительные ценности доброжелательности, чтобы они использовали любые ресурсы, если они есть, но отказались от них, если на них есть спрос. Будет ли это работать так, как я ожидал? Или, если все они имеют одинаковые значения приятности, будет ли это по сути то же самое, что и все они равны 0?
В основном мне интересно, как ядро решает, какие процессы должны получить приоритет, если все они имеют одинаковое значение приоритета и всем нужны ресурсы? Поскольку существует только 39 возможных уровней удобства (от -20 до +19 iirc), я не мог бы дать каждому серверу разные значения, если бы это работало таким образом.
Мы будем очень благодарны за любые разъяснения по этому поводу.
Некоторые другие решения, с которыми я столкнулся, чтобы предотвратить зависание:
cpulimit
утилита (которая для меня не работает)ulimit
- для каждого пользователя, звучит идеально для меня, так как у каждого сервера есть свой пользователь, хотя он предлагает только cputime как измерение использования ресурсов процессора. Мне любопытно, означает ли это прошедшее время или процент времени процессора в секунду или что-то еще.Прежде всего, я бы предположил, что в вашем дистрибутиве linux, вероятно, есть вещи, уже настроенные из коробки, лучше, чем вы собираетесь в конечном итоге, если вы начнете взламывать такие вещи, как изменение общесистемных хороших значений.
Во-вторых, я не думаю, что приятно делать то, что вы хотите. Это имеет некоторый эффект, но не такой глубокий, как вы думаете. ВИД планировщика и его внутренний набор правил имеют большее значение. Также проблема, с которой вы, вероятно, столкнетесь, связана с использованием памяти, а не с часами процессора, так что nice вряд ли станет лекарством.
В ulimit
система, вероятно, больше то, что вы имеете в виду.
Однако мой главный совет: вы решать только проблемы реального мира. Беспокойство о чем-то до того, как это произойдет, заставит вас залатать систему вместе изолентой и предохранительной проволокой из-за проблемы с пугалом. Когда у вас есть реальная проблема, лучшее решение будет гораздо более очевидным. Конечно, исправление архитектуры и планирование наихудшего - это хорошо, но в этом случае ваш Linux-дистрибутив, вероятно, сделал большую часть этой работы за вас.