【发布时间】:2015-07-28 10:56:46
【问题描述】:
先决条件
我有一个(物理)服务器运行多个(虚拟)服务器。总共有 11 个服务器,编号 0 到 9 被调用
servinit XXXXn
其中XXXXn 是端口号,n 是服务器号。另一台服务器由
apiinit
并在 8080 端口上运行。总之,有 11 个进程,其中 10 个二进制名称为 servinit,1 个为 apiinit。
目标
servinit 进程必须始终响应,换句话说,apiinit 进程决不能消耗所有 CPU 时间。我想将apiinit 的总 CPU 时间限制为一个百分比数字,比如 90,以便servinit 进程始终有 10% 的 CPU 空间来完美运行。
最有效的处理方式是什么?
软件
物理服务器运行
Ubuntu Desktop
Release 12.04 (precise) 64-bit
Kernel: 3.14.32-xxxx-std-ipv6-64
【问题讨论】:
-
你试过
renice -n 19 $API_PID吗?也许这就足够了。我认为真正保留 CPU 的一部分是没有意义的。应该可以使用“cgroups”-> google 保留整个 CPU 内核
标签: linux bash shell cpu-usage