我们有一台Linux服务器,其中有多个用户登录。如果有人运行make -jN
,它会占用整个服务器的CPU使用率,并且对其他用户的响应能力会急剧下降。
有没有办法减少Linux中任何人运行的priority
make
进程?
答案 0 :(得分:2)
制作一个' -l' ( - load-average)选项。 如果您指定' make -l 3',如果已经有作业并且负载超过3,则make将不会启动其他作业。
从联系手册:
-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的优先级,但它可以避免造成过多的负载。
答案 1 :(得分:0)
将make替换为您自己的脚本并添加" nice -n<>"命令,使-jN越高,越好。
启动超级用户进程,执行ps -u"用户名" | grep make,并计算进程数。在过程id上使用renice使它们符合要求,或者你想要的任何其他算法