Affected versions: CentOS Stream 10

📖 ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution – Primary Fix
  7. Solution – Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

MemoryMax or CPUQuota set in unit files have no observable effect.

Environment & Reproduction

Hosts where cgroup v1/v2 hybrid mode is mis-detected.

stat -fc %T /sys/fs/cgroup
systemctl show -p UnitPath

Root Cause Analysis

Unit limits apply to a controller that is not enabled in the active hierarchy.

Quick Triage

Confirm which cgroup version is active and which controllers exist.

mount | grep cgroup
cat /sys/fs/cgroup/cgroup.controllers

Step-by-Step Diagnosis

Inspect per-service cgroup paths to verify limits are wired.

systemctl status myservice | grep CGroup
cat /sys/fs/cgroup/system.slice/myservice.service/memory.max
Illustrative mockup for centos-stream-10 — cgroup_ignored
Limit ignored — Illustrative mockup — Progressive Robot

Solution – Primary Fix

Enable unified cgroup v2 in kernel cmdline and rebuild.

Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.

grubby --update-kernel=ALL --args='systemd.unified_cgroup_hierarchy=1'
systemctl reboot
Illustrative mockup for centos-stream-10 — cgroup_enforced
Limits enforced — Illustrative mockup — Progressive Robot

Solution – Alternative Approaches

Use slice-level controls if unit overrides keep being ignored.

systemctl set-property system.slice MemoryMax=80%

Verification & Acceptance Criteria

memory.max and cpu.max reflect unit settings.

cat /sys/fs/cgroup/system.slice/myservice.service/memory.max

Rollback Plan

Revert kernel cmdline change.

grubby --update-kernel=ALL --remove-args='systemd.unified_cgroup_hierarchy=1'

Prevention & Hardening

Standardize on cgroup v2 across the fleet.

ansible -m shell -a 'stat -fc %T /sys/fs/cgroup' all

Limits not enforced, MemoryMax inactive, controller missing.

Related tutorial: View the step-by-step tutorial for centos-stream-10.

View all centos-stream-10 tutorials on the Tutorials Hub →

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

systemd resource control, cgroup v2 docs.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today — we respond within one business day.