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