如何使用 upstart 限制进程可以使用的 CPU 数量(Ubuntu 11.10)

如何使用 upstart 限制进程可以使用的 CPU 数量(Ubuntu 11.10)

我想限制我安排的作业(Rails 应用程序的 Resque)使用的处理器能力,我发现这个新贵看起来很有前途,可能会做我想做的事:

http://upstart.ubuntu.com/wiki/Stanzas#limit

但是我不太清楚如何使用它,比如说我想让进程最大使用两个 CPU 中的一个的 50%,我应该在我的 upstart 文件中写什么?

此外,当该过程达到极限时会发生什么?

答案1

Upstart 中没有这样的节。“limit cpu”节将限制进程在 CPU 上执行的最大时间(以秒为单位)。在此允许时间内,它可以占用 100% 的 CPU。

参见 man setrlimit(2):http://linux.die.net/man/2/setrlimit

RLIMIT_CPU CPU 时间限制(以秒为单位)。当进程达到软限制时,将向其发送 SIGXCPU 信号。此信号的默认操作是终止进程。但是,可以捕获该信号,处理程序可以将控制权返回给主程序。如果进程继续消耗 CPU 时间,则每秒将向其发送一次 SIGXCPU,直到达到硬限制,此时将发送 SIGKILL。(后一点描述了 Linux 的行为。实现在处理达到软限制后继续消耗 CPU 时间的进程方面有所不同。需要捕获此信号的可移植应用程序应在第一次收到 SIGXCPU 时执行有序终止。)

相关内容