[systemd-devel] No cgroups in cpu,cpuacct despite autogrouping
Lennart Poettering
lennart at poettering.net
Fri May 22 04:43:27 PDT 2015
On Fri, 22.05.15 12:41, Jan Engelhardt (jengelh at inai.de) wrote:
>
> In my kernel, there is CONFIG_SCHED_AUTOGROUP=y set. I believe that since
> systemd is capable of, and is doing grouping on its own, the kernel option has
> no effect. This seems reflected in /sys/fs/cgroups/cpu,cpuacct having
> no subdirectories:
AFAIK autogroup was never reflected in the cgroup tree.
>
> 12:34 ares40:../cgroup/cpu,cpuacct > ls -Fax
> ./ ../ cgroup.clone_children cgroup.procs
> cgroup.sane_behavior cpu.cfs_period_us cpu.cfs_quota_us cpu.rt_period_us
> cpu.rt_runtime_us cpu.shares cpu.stat cpuacct.stat
> cpuacct.usage cpuacct.usage_percpu notify_on_release release_agent
> tasks
>
>
> As a result of this, all processes get equal shares, rather than all
> SID groups getting equal shares, causing BOINC to outmonopolize VirtualBox:
>
>
> /$ systemd-cgls
> ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 20
> [...]
> └─user.slice
> └─user-25121.slice
> ├─session-3.scope
> │ ├─ 376 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─ 2200 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─ 2578 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─ 2826 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─ 3162 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─ 3697 SCREEN
> │ ├─ 3698 -/bin/bash
> │ ├─ 6070 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─ 6554 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> │ ├─14171 /usr/lib/virtualbox/VBoxXPCOMIPCD
> │ ├─14176 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
> │ ├─14255 /usr/lib/virtualbox/VBoxNetDHCP --ip-address 192.168.100.100 --...
> │ ├─25859 boinc
> │ └─30167 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>
>
> How would one re-enable the SID-style cpuacct grouping with systemd?
Quite frankly I have no idea how the "cpu" controller hierarchy
interacts with autogrouping.
For normal system services you can ask systemd however to move things
into the "cpu" hierarchy, so that explicit groups are created in
/sys/fs/cgroup/cpu. Do this via "systemctl set-property foobar.service
CPUShares=1500".
But if i see that correctly, your two services are not actually system
services, but session processes. And to that I can only say: this is
simply not supported in systemd and the kernel: since cgroupfs
controller access is security sensitive unprivileged processes will
not get access to anything but the name=systemd cgroup hierarchy, and
hence cannot managed their own set of CPUShares= currently.
Sorry,
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list