Ограничить ЦП / ОЗУ во всем процессе для Debian
Всякий раз, когда я запускаю задачи с интенсивным использованием ЦП / ОЗУ, я не могу использовать свой компьютер, он зависает, пока задача не будет завершена. Я искал способ ограничить ресурсы на процесс для всех процессов.
т.е. ни один из процессов не проходит выше 25% ЦП или 3 ГБ ОЗУ.
Спасибо
1 ответ
Ограничение всех процессов произвольным ограничением может оказаться не таким полезным, как вы могли бы изначально подумать.
Как отмечается в комментарии, вы можете ограничить ЦП, но в зависимости от процесса вам лучше обойтись, просто установив nice
-степенность процесса (также известная как приоритет процесса). Это позволит процессу работать на полной скорости, когда вы просто читаете сайт и не используете какой-либо процессор, но уступаете и уступаете своему браузеру, как только он начинает использовать процессор (ы) для любого JavaScript (как пример).
Другой вариант - установить привязку процессора к процессу. Это позволяет ОС запускать процесс только на одном конкретном ядре ЦП, оставляя другие 3 (в вашем случае) свободными для всего, что может понадобиться. Это хорошо, когда ваш процесс является однопоточным (например, процесс кодирования видео или процесс создания исходного кода); Вы можете установить привязку к 1-му ядру ЦП, и у вас будет 3 других на холостом ходу (пока не будет использовано).
И есть также ulimit
, который вы можете использовать для установки мягких и жестких ограничений или ОЗУ / ЦП (хотя это для всей системы, а не для процесса).
Следует отметить, что ограничение вашей оперативной памяти может иметь непредвиденные последствия (например, использование подкачки), и вместо этого вы должны попробовать nice
значение, сродство процессора или ulimit
для процессорного времени перед ограничением оперативной памяти. Оперативная память не похожа на процессор в том смысле, что ее большее использование ухудшит общую производительность системы; напротив, производительность системы имеет тенденцию к увеличению, когда можно использовать больше ОЗУ, и вы должны заметить снижение производительности только в том случае, если область подкачки должна использоваться поверх ОЗУ (поскольку своп обычно основан на диске и на несколько порядков медленнее, чем ОЗУ), и вы замечаете, что большая часть области подкачки используется с кучей свободной оперативной памяти, а затем происходит что-то еще, что необходимо решить (например, настройки ядра).
Надеюсь, что это может помочь.