Linux Control Groups (cgroups)
- Path:
/sys/fs/cgroup- Process cgroup:
/proc/self/cgroup
- Process cgroup:
- Unified Hierarchy (v2):
/sys/fs/cgroup/unified(fstype=63677270)- Controllers:
/sys/fs/cgroup/cgroup.controllers
- Controllers:
常用操作 (Common Operations)
# 创建 group
cgcreate -g "memory:slack_group" -t victor:victor
# 限定 group 内存
cgset -r memory.limit_in_bytes=1G "slack_group"
# 在 group 内启动
cgexec -g "memory:slack_group" slack
# 移除 group
cgdelete "memory:slack_group"
# 禁止 swap
echo 0 > /sys/fs/cgroup/memory/slack_group/memory.swappiness
# 检查内存使用
cat /sys/fs/cgroup/memory/memory.usage_in_bytes
cat /sys/fs/cgroup/memory/memory.limit_in_bytesOOM Killing
- OOM Score:
/proc/${PID}/oom_score
内存统计 (Memory Stats)
/sys/fs/cgroup/memorymemory.statmemory.usage_in_bytesRSS + CACHEfree.used + free.(buff/cache) - (buff)
memory.max_usage_in_bytesdocker/(Docker sub-groups)ID/(Container memory info)
常见问题
"memory" requires setting use_hierarchy to 1 on the root
cgroup: "memory" requires setting use_hierarchy to 1 on the root.- File:
/sys/fs/cgroup/memory/memory.use_hierarchy - 建议开启 (Recommended: 1)
- 开启后,统计内存使用会包含子 cgroup 的使用情况。
Check cgroup support
cat /proc/cgroups参考资料
- Cgroups - WikipediaWikipediaCgroups
- Control Group v1 Documentation
- Control Group v2 Documentation
- Cgroups - ArchWiki链接wiki.archlinux.org/index.php/CgroupsPath: · Process cgroup: · Unified Hierarchy (v2): (fstype=63677270) · Controllers: · OOM Score: · - · - · - · - · - · - · (Docker sub-groups)笔记:Linux Control Groups (cgroups)
- cgmanager - Alpine Linux
- Kernel Knowledge Behind Docker: cgroups Resource Isolation
v1 vs v2 vs hybrid
Reference Snippets
mount -t cgroup cgroup /sys/fs/cgroup关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- Linux Awesome笔记 · cgrouop
WebAdmin/WebUI · IceWhaleTech/CasaOS · Apache-2.0, Go · Personal Cloud system · azukaar/Cosmos-Server · Apache-2.0, Go · Selfhosted Home Server
参考资料
Wikipedia1 条
- CgroupsWikipedia:Cgroups
其他外链6 条
- pkgs.alpinelinux.org/package/edge/community/x86_64/cgmanagerpkgs.alpinelinux.org/package/edge/community/x86_64/cgmanager
- wiki.archlinux.org/index.php/Cgroupswiki.archlinux.org/index.php/Cgroups
- www.infoq.com/cn/articles/docker-kernel-knowledge-cgroups-resource-isolationwww.infoq.com/cn/articles/docker-kernel-knowledge-cgroups-resource-isolation
- www.kernel.org/doc/Documentation/cgroup-v1www.kernel.org/doc/Documentation/cgroup-v1
- www.kernel.org/doc/Documentation/cgroup-v1/memory.txtwww.kernel.org/doc/Documentation/cgroup-v1/memory.txt
- www.kernel.org/doc/Documentation/cgroup-v2.txtwww.kernel.org/doc/Documentation/cgroup-v2.txt