Всякий раз, когда я запускаю задачи с интенсивным использованием CPU/RAM, я не могу использовать свой компьютер, он зависает, пока задача не будет завершена. Я искал способ ограничить ресурсы на процесс для всех процессов.

т.е. ни один из процессов не проходит выше 25% ЦП или 3 ГБ ОЗУ.

Спасибо

1 ответ1

1

Ограничение всех процессов до произвольного предела может быть не таким полезным, как вы могли бы изначально подумать.

Как комментарий указал, вы можете ограничить CPU, но в зависимости от процесса, то лучше может быть подан, просто установив nice -ness процесса (также известный как приоритет процесса). Это позволит процессу работать на полной скорости, когда вы просто читаете сайт и не используете какой-либо процессор, но уступаете и уступаете своему браузеру, когда ему нужно начать использовать процессор (ы) для любого JavaScript (как пример).

Другой вариант - установить привязку процессора к процессу. Это позволяет ОС запускать процесс только на одном конкретном ядре ЦП, оставляя остальные 3 (в вашем случае) свободными для всего, что может понадобиться. Это хорошо, когда ваш процесс является однопоточным процессом (например, процесс кодирования видео или процесс создания исходного кода); Вы можете установить привязку к 1-му ядру ЦП, и у вас будет 3 других на холостом ходу (пока не будет использовано).

И есть также ulimit, который вы можете использовать для установки мягких и жестких ограничений или ОЗУ / ЦП (хотя это для всей системы, а не для процесса).

Следует отметить , что ограничение оперативной памяти может привести к нежелательным последствиям (как использование свопа), и вместо этого вы должны попробовать nice стоимость, близость процессора или ulimit для процессорного времени , прежде чем ограничение оперативной памяти. Оперативная память не похожа на процессор в том смысле, что ее более интенсивное использование ухудшит общую производительность системы; напротив, производительность системы имеет тенденцию к увеличению, когда можно использовать больше ОЗУ, и вы должны заметить снижение производительности только в том случае, если область подкачки должна использоваться поверх ОЗУ (поскольку своп обычно основывается на диске и на несколько порядков медленнее, чем ОЗУ), и если вы замечаете, что большая часть области подкачки используется с кучей свободной оперативной памяти, а затем происходит что-то еще, что необходимо решить (например, настройки ядра).

Надеюсь, что это может помочь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .