Как изменить приоритет процесса сборки

У нас есть сервер Linux с несколькими пользователями, вошедшими в систему. Если кто-то запускает make -jN он потребляет всю нагрузку на процессор сервера, а скорость отклика других пользователей резко снижается.

Есть ли способ уменьшить priority из make процесс запускается кем-нибудь в Linux?

1

Решение

У make есть опция ‘-l’ (—load-average).
Если вы укажете ‘make -l 3’, make не будет запускать дополнительные задания, если уже запущены задания и нагрузка превышает 3.

Из справочной страницы:

   -l [load], --load-average[=load]
Specifies that no new jobs (commands) should be started  if  there
are  others  jobs running and the load average is at least load (a
floating-point number).  With no argument, removes a previous load
limit.

Это на самом деле не уменьшает приоритет make, но позволяет избежать слишком большой нагрузки.

2

Другие решения

замените make своим собственным скриптом и добавьте «nice -n» <> «Команда, так что чем выше -jN, тем больше милости.

запустить процесс суперпользователя, который выполняет ps -u «имя пользователя» | grep make и посчитайте количество процессов. используйте renice для идентификаторов процессов, сделайте их в строке, или любой другой алгоритм, который вы хотите

0

По вопросам рекламы [email protected]