如何更改make build进程的优先级

时间:2014-06-25 06:57:04

标签: c++ c shell makefile nice

我们有一台Linux服务器,其中有多个用户登录。如果有人运行make -jN,它会占用整个服务器的CPU使用率,并且对其他用户的响应能力会急剧下降。

有没有办法减少Linux中任何人运行的priority make进程?

2 个答案:

答案 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使它们符合要求,或者你想要的任何其他算法