Cgroups - howto
Jump to navigation
Jump to search
Howto - cgroups
This is only for debian wheezy
Prereq
apt-get install cgroup-bin
Enable cgroups memory configuration
This is disabled by default in wheezy (installed though), so activate via:
vim /etc/default/grub # Add cgroup_enable=memory to GRUB_CMDLINE_KERNEL: GRUB_CMDLINE_LINUX="cgroup_enable=memory" update-grub2
Mount cgroups
Add to /etc/fstab
cgroup /sys/fs/cgroup cgroup defaults 0 0
Create cgroup owner(s)
sudo cgcreate -a ipeacocks -g cpu:ipeacocks
- Adding ressources to that user. A CPU is divided into 1024 slices, so assigning 100 for a user would equal ~10%.
# About 10 % cpu echo 100 > /cgroup/cpu/$USER/cpu.shares # 10 Mb echo 10000000 > /cgroup/memory/$USER/memory.limit_in_bytes # -g specifies the control group to run the process in # Limit cpu cgexec -g cpu:$USER command <options> & # Limit cpu and memory cgexec -g memory,cpu:$USER command <options> &
If the above works fine, cgroups is setup successfully.
Setting up configurations
Edit /etc/cgconfig.conf, add your cgroups users
group $USER { # Specify which users can admin (set limits) the group perm { admin { uid = $USER; } # Specify which users can add tasks to this group task { uid = $USER; } } # Set the cpu and memory limits for this group cpu { cpu.shares = 100; } memory { memory.limit_in_bytes = 10000000; } }