我正在嘗試使用cgroups來限制CPU使用率。我使用本指南 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.html使用Cgroups限制CPU使用率
我/etc/cgconfig.conf文件如下
mount {
cpu = /mnt/cgroup/cpu,cpuacct;
cpuacct = /mnt/cgroup/cpu,cpuacct;
}
group wheel {
cpu {
cpu.shares="800";
}
cpuacct {
cpuacct.usage="0";
}
}
group test1 {
cpu {
cpu.shares="200";
}
cpuacct {
cpuacct.usage="0";
}
}
我cgrules.conf如下
我們雖然當我嘗試運行:
dd if=/dev/zero of=/dev/null bs=1024k
我看到cpu使用率爲100% ERS屬於組輪和test1的
我已經檢查與 服務cgconfig狀態 的服務和高達
Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; disabled)
Active: active (exited) since Mon 2015-03-02 17:29:19 EET; 7min ago
Process: 1240 ExecStop=/usr/sbin/cgclear -l /etc/cgconfig.conf -e (code=exited, status=3)
Process: 56536 ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s 1664 (code=exited, status=0/SUCCESS)
Main PID: 56536 (code=exited, status=0/SUCCESS)
誰能告訴我,我究竟做錯了什麼? 非常感謝
你可以在運行'dd if =/dev/zero of =/dev/null bs = 1024k'時添加'top'命令的輸出嗎? – 2015-03-02 16:36:23
'cgroup'股份只會在有競爭的情況下限制CPU資源*。在你的例子中,如果'test1'需要CPU資源,'wheel'沒有使用任何,那麼就沒有競爭,'test1'可以擁有任何想要的東西。如果兩者都需要資源,那麼您應該看到基於份額的限制生效。 – twalberg 2015-03-02 17:36:13
你好輸出如下: ' 'PID USER PR NI VIRT RES SHR S%CPU%MEM TIME + COMMAND' '51535 USER1 20 0 108956 1680 556 - [R 100.0 0.0 0:27.74 dd' '51557 USER2 20 0 108956 1676 552 R 100.0 0.0 0:23.57 dd' user1屬於車輪組,user2屬於test1組 – SteveGr2015 2015-03-02 17:40:00