cgroups icon indicating copy to clipboard operation
cgroups copied to clipboard

Support cgroup v2 CPU stats when controller not enabled

Open jay-mckay opened this issue 1 year ago • 1 comments

manager.Stat() iterates over enabled controllers to construct statistics, namely for memory and CPU. If a controller is not enabled, the statistics are not provided.

https://github.com/containerd/cgroups/blob/0c03de4a3d82a5f02f455ccc8174cb0dc9c2a532/cgroup2/manager.go#L565-L575

However, regardless of whether the cpu controller is enabled, cgroups v2 always provides the following statistics in cpu.stat :

  • usage_usec
  • user_usec
  • system_usec

Systemd no longer enables this controller when the property CPUAccounting=True, meaning these statistics are not provided when they probably should be. Stat() should be modified to fix this.

See https://docs.kernel.org/admin-guide/cgroup-v2.html#cpu-interface-files, systemd/systemd#10507

jay-mckay avatar Aug 28 '24 19:08 jay-mckay

I believe this straightforward. If this behavior is desired, I can work on the fix.

jay-mckay avatar Aug 28 '24 19:08 jay-mckay