CGroups实战

CGroups技术文章

cgroups_v1官方文档: www.kernel.org/doc/Documen…
Red Hat 资源管理指南: access.redhat.com/documentati…
CGroup详解: juejin.cn/post/692129…

CGroups资源限制实战

首先查看系统是否支持CGroups。
cat /proc/cgroups
如下图所示,系统支持CGroups,并且支持的子系统如下图所示,有cpuset、cpu、memory等。
image.png

资源限制实战

一般来说,系统已经根据每个子系统创建了hierarchy,如下所示。

mount -t cgroup
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
复制代码

执行

cd /sys/fs/cgroup/cpu
mdkir test
复制代码

就在cpu cgroup下创建了一个新的子cgroup test,系统会在test下自动生成相关的配置文件。
cgroup.clone_children cgroup.event_control cgroup.procs cpuacct.stat cpuacct.usage cpuacct.usage_percpu cpu.cfs_period_us cpu.cfs_quota_us cpu.rt_period_us cpu.rt_runtime_us cpu.shares cpu.stat notify_on_release tasks

启动一个进程,然后将该进程加入cgroup test,观察cpu是否收到限制。

while : ; do : ; done &

top
# 可以看到cpu利用率99%
1815 root      20   0  116336   1348    164 R 99.0  0.1  11:05.29 bash
复制代码

$ echo 20000 > /sys/fs/cgroup/cpu/test/cpu.cfs_quota_us


$ echo 1815 > /sys/fs/cgroup/cpu/test/tasks 

top
# 可以看到cpu利用率下降为20%,说明cpu资源收到限制,其他子系统都是一样的操作
1815 root      20   0  116336   1348    164 R 20.0  0.1  17:56.04 bash
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享