# 一、准备 ## systemd 先了解systemd: - [Linux 守护进程的启动方法](http://www.ruanyifeng.com/blog/2016/02/linux-daemon.html) - [Systemd 入门教程:命令篇](http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html) - [Systemd 入门教程:实战篇](http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html) ## libcgroup工具 libcgroup 数据包, 在 Red Hat Enterprise Linux 之前版本中是管理 cgroup 的主要工具,但现已过时。为避免冲突,请不要将 libcgroup 工具应用于默认资源管控器,它们现在是 systemd 的专属域。这就让 libcgroup 工具的应用空间变得有限,只有当您需要管理目前不受systemd 支持的控制器时,请再使用它,例如 net_prio。 ## 安装lib 如果执行lscgroup报告以下错误,则需要安装相关库: ```bash [root@bogon ~]# lscgroup bash: lscgroup: : command not found... ``` yum安装lib: ```bash [root@bogon ~]# yum install libcap-devel.x86_64, libcgroup-tools.x86_64, bridge-utils.x86_64 ``` ## lssubsys 列出子系统挂载点: ```bash [root@bogon ~]# lssubsys -am cpuset /sys/fs/cgroup/cpuset cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct memory /sys/fs/cgroup/memory devices /sys/fs/cgroup/devices freezer /sys/fs/cgroup/freezer net_cls,net_prio /sys/fs/cgroup/net_cls,net_prio blkio /sys/fs/cgroup/blkio perf_event /sys/fs/cgroup/perf_event hugetlb /sys/fs/cgroup/hugetlb pids /sys/fs/cgroup/pids ``` 或者, ```bash [root@yz219 blkio]# grep -wi cgroup /proc/mounts | grep -wi cpu | head -n 1 | awk '{print $2}' /sys/fs/cgroup/cpu,cpuacct ``` ## cgset与cgget libcgroup工具之一。 例如: ```bash # 设置值: [root@yz219 boot]# cgset -r cpuset.cpus="1-3" yz # 读取值: [root@yz219 boot]# cgget -r cpuset.cpus yz yz: cpuset.cpus: 1-3 ``` ## 删除用户自己创建的资源组 假设用户`yz`创建了以下资源组: /sys/fs/cgroup/cpu/ff/cgdemo/ 在 shell 中,直接使用`rm`命令是无法删除`cgdemo`的,报错: ```bash yz@yz219:/sys/fs/cgroup/cpu/ff$ rm -rf cgdemo rm: 无法删除'cgdemo/cgroup.procs': 不允许的操作 rm: 无法删除'cgdemo/cpu.cfs_period_us': 不允许的操作 rm: 无法删除'cgdemo/cpu.stat': 不允许的操作 …… ``` 但是,可以使用`rmdir`删除: ```bash yz@yz219:/sys/fs/cgroup/cpu/ff$ rmdir cgdemo ``` 或者,使用`cgdelete`命令删除: ```bash yz@yz219:/sys/fs/cgroup/cpu$ cgdelete cpu:ff/cgdemo ``` 如果是在 c 语言里,可以使用`rmdir`直接删除。 # 二、实例 参阅:[Redhat 7 cgroups实例](Redhat 7 cgroups实例) # 三、参考 - [Redhat 7资源管理指南](Redhat 7资源管理指南) - [CGroup 介绍、应用实例及原理描述](https://www.ibm.com/developerworks/cn/linux/1506_cgroup/index.html) - [Cgroup与LXC简介](https://blog.51cto.com/speakingbaicai/1359825) - [cgroup实践-资源控制](https://blog.csdn.net/sofia1217/article/details/49154113) - [Linux资源管理之cgroups简介](https://tech.meituan.com/2015/03/31/cgroups.html) - [Linux Cgroup 入门教程:基本概念(四篇)](https://fuckcloudnative.io/posts/understanding-cgroups-part-1-basics/)