процессы, работающие при nice +20, все равно делают систему вялой

если у меня есть процесс, который я хочу запустить в фоновом режиме на всех ядрах, это может сделать систему очень вялой, даже при работе на хороших +20. Нехватка памяти или io не является проблемой. Есть ли простой способ снизить приоритет процессора ниже этого, или мне придется прибегнуть к запуску фонового процесса с меньшим количеством рабочих потоков, чем число ядер, или к какому-то другому виду управления процессом внутри процесса.

1
задан 21 May 2019 в 17:11
2 ответа

Вы можете посмотреть 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 и т. Д.

1
ответ дан 3 December 2019 в 20:07

Первое решение

Используйте команду ограничения. Как объясняется на странице руководства:

limit, ulimit, unlimit - устанавливает или получает ограничения на системные ресурсы, доступные для текущей оболочки и ее потомков

Вот ссылка на страницу руководства.

] Второе решение

Используйте тюрьму, ее можно использовать для изоляции процесса от остальной части вашей системы, а также для ограничения использования ЦП и памяти.

Как объяснено здесь :

FreeBSD предоставляет администратору несколько методов ограничения количества системных ресурсов, которые может использовать человек. Дисковые квоты ограничивают объем дискового пространства, доступного пользователям. Квоты обсуждаются в Раздел 17.11, «Дисковые квоты».

Ограничения на другие ресурсы, такие как ЦП и память, могут быть установлены с помощью простого файла или команды для настройки базы данных ограничений ресурсов. Традиционный метод определяет классы входа в систему путем редактирования /etc/login.conf. Хотя этот метод все еще поддерживается, любые изменения требуют многоступенчатого процесса редактирования этого файла, восстановления базы данных ресурсов, внесения необходимых изменений в /etc/master.passwd и восстановления базы данных паролей. Это может занять много времени в зависимости от количества настраиваемых пользователей.

1
ответ дан 3 December 2019 в 20:07

Теги

Похожие вопросы