У нас есть сервер Linux с несколькими пользователями, вошедшими в систему. Если кто-то запускает make -jN
он потребляет всю нагрузку на процессор сервера, а скорость отклика других пользователей резко снижается.
Есть ли способ уменьшить priority
из make
процесс запускается кем-нибудь в Linux?
У 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, но позволяет избежать слишком большой нагрузки.
замените make своим собственным скриптом и добавьте «nice -n» <> «Команда, так что чем выше -jN, тем больше милости.
запустить процесс суперпользователя, который выполняет ps -u «имя пользователя» | grep make и посчитайте количество процессов. используйте renice для идентификаторов процессов, сделайте их в строке, или любой другой алгоритм, который вы хотите