1

我在 CentOS 6.3 x64 机器上运行 JVM 实例。有时,一个人的 CPU 使用率会变得猖獗,I/O 会阻塞整个机器。

如何将所有 Java 进程的使用限制为单个内核?还是两个核心?还是按照规定?

我试过cpulimit了,它无法用于多个内核以及多个同名进程。

有没有一种简单的方法来限制指定名称的所有进程的 CPU 使用率?

4

1 回答 1

1

好吧,我认为您所需要的只是pgrep(查找 PID)和taskset. 然后根据您的需要,您将运行(作为超级用户)类似:

for pid in $(pgrep <pattern>);
do
  taskset -p 0x00000001 $pid
done

taskset有关如何使用它的更多信息,请参阅手册页。您可能需要安装该schedutils软件包。

当然,您可以通过修改处理器掩码(即您分配的 CPU)将该方案更改为您想要的任何复杂性。

我应该补充一点,我认为 cpuset(假设你的意思是,我不知道一个名为cpulimit但并不意味着什么的工具)使用相同的底层机制。因此,正如您过去的尝试一样,这可能是徒劳的。

于 2013-02-20T00:30:24.530 回答