Если у меня есть процесс, который я хочу запускать в фоновом режиме на всех ядрах, это может сделать систему очень вялой, даже если она будет работать с хорошими +20. Проблема не в нехватке памяти или io. Есть ли какой-либо простой способ уменьшить приоритет процессора ниже этого, или мне нужно прибегать к запуску фонового процесса с меньшим количеством рабочих потоков, чем количество ядер, или каким-либо другим внутренним управлением процессором внутри процесса.
Используйте команду limit. Как объяснено на странице руководства:
limit, ulimit, unlimit - установить или получить ограничения на системные ресурсы, доступные для текущей оболочки и ее потомков
Вот ссылка на сайт на страницу руководства.
Используйте тюрьму, ее можно использовать для изоляции процесса от остальной части вашей системы, а также для ограничения использования ЦП и памяти.
Как объяснено Вот :
FreeBSD предоставляет администратору несколько методов ограничения количества системных ресурсов, которые может использовать человек. Дисковые квоты ограничивают объем дискового пространства, доступного пользователям. Квоты обсуждаются в Раздел 17.11, «Дисковые квоты».
Ограничения для других ресурсов, таких как ЦП и память, можно установить с помощью простого файла или команды для настройки базы данных ограничений ресурсов. Традиционный метод определяет классы входа в систему путем редактирования /etc/login.conf. Хотя этот метод по-прежнему поддерживается, любые изменения требуют многоэтапного процесса редактирования этого файла, восстановления базы данных ресурсов, внесения необходимых изменений в /etc/master.passwd и восстановления базы данных паролей. Это может занять много времени в зависимости от количества настраиваемых пользователей.
Вы можете посмотреть на idprio (1) и / или процессор (1).
Например:
idprio 31 commandhere
ограничит commandhere
в приоритет холостого хода. И
cpuset -l 0-3 commandhere
ограничил бы его только ядрами процессора 0-3. Чтобы объединить их:
cpuset -l 0 idprio 31 commandhere
(порядок можно переключить на idprio 31 cpuset -l 0-3 commandhere
, Я не думаю, что это важно). Какая команда или комбинация аргументов команд (приоритет или список процессоров), конечно, зависит от вашей рабочей нагрузки, YMMV и т. Д.