2

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

有什么办法可以减少Linux 中任何人运行prioritymake进程的数量吗?

4

2 回答 2

2

Make 有一个 '-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的优先级,但可以避免造成过多的负载。

于 2014-06-25T08:58:37.993 回答
0

用你自己的脚本替换 make 并添加一个“nice -n <>”命令,这样 -jN 越高越好。

启动一个执行 ps -u "user name" | 的超级用户进程 grep make,并计算进程数。在进程 ID 上使用 renice 使它们符合要求,或者您想要的任何其他算法

于 2014-06-25T07:21:39.030 回答