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等。
资源限制实战
一般来说,系统已经根据每个子系统创建了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