I am trying to use cgroups in order to limit the CPU usage. I am using this guide https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu_and_memory-use_case.html
My /etc/cgconfig.conf file is the following
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";
}
}
My cgrules.conf is the following
@wheel cpu,cpuacct wheel
@test1 cpu,cpuacct test1
Althouth when I try to run:
dd if=/dev/zero of=/dev/null bs=1024k
I see that the cpu usage in 100% for the users belong to group wheel and test1
I have checked the services with service cgconfig status and is up
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)
Can anyone tell me what am I doing wrong? Thanks a lot
top
command when you're runningdd if=/dev/zero of=/dev/null bs=1024k
? – Avoidancecgroup
shares will only limit CPU resources when there is competition for them. If, in your example,test1
wants CPU resources, andwheel
is not using any, then there is no competition, andtest1
can have whatever it wants. If both are demanding resources, then you should see the share-based limiting taking affect. – HepatoPID 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 belongs to wheel group and user2 to test1 group – Shortcircuitdd
commant for both users at the same time. I put also above the result of the top command. Do you believe that I should try with another command? – Shortcircuit