操作系统版本信息:
[root@localhost system]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
test.slice的配置如下:
[root@localhost system]# cat test.slice
[Unit]
Description=Test Slice
Documentation=man:systemd.special(7)
DefaultDependencies=no
Before=slices.target
Wants=-.slice
After=-.slice
[Slice]
CPUAccounting=on
CPUShares=1024
我创建了另一个类似的文件(称之为 testhigh.slice)并赋予它 CPU 份额 = 128。当我在任一切片中启动 CPU 密集型进程时,我看到 CPU 按比例分配,正如预期的那样。
然而,似乎没有办法真正将一个切片的 CPU 限制为一个常数,例如 10%。CPU配额systemd 无法识别该选项:
Apr 23 21:34:00 localhost.localdomain systemd[1]: [/usr/lib/systemd/system/test.slice:22] Unknown lvalue 'CPUQuota' in section 'Slice'
原则上,能够精确分配资源是一件了不起的事情,但目前我无法实现这一点。请帮忙;如果可能的话,我想要一个来自 systemd 框架内部的解决方案。
答案1
CPUQuota 选项自 RHEL/CentOS 7.2 起才可用(https://www.certdepot.net/rhel-7-2-cpuquota-option/-请注意,我是本网站的作者)。