【发布时间】:2014-08-15 15:06:14
【问题描述】:
我们有一个多用户登录的 Linux 服务器。如果有人运行 make -jN,它会占用整个服务器的 CPU 使用率,并且对其他用户的响应能力会急剧下降。
有什么办法可以减少Linux中任何人运行的make进程的priority?
【问题讨论】:
我们有一个多用户登录的 Linux 服务器。如果有人运行 make -jN,它会占用整个服务器的 CPU 使用率,并且对其他用户的响应能力会急剧下降。
有什么办法可以减少Linux中任何人运行的make进程的priority?
【问题讨论】:
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的优先级,但可以避免造成过多的负载。
【讨论】:
用你自己的脚本替换make并添加一个“nice -n ”命令,这样-jN越高,nice越多。
启动一个超级用户进程 ps -u "user name" | grep make,并计算进程数。在进程 id 上使用 renice 使它们符合要求,或者您想要的任何其他算法
【讨论】: