A.12. 常用可调参数
			无论 cgroup 使用哪个子系统,下列参数都将出现在每一个被创建的 cgroup 中。
		
- tasks
- 包含一系列在 cgroup 中运行的进程(由它们的 PID 表示)。PID 列表不一定是有序的,也不一定是特有的(也就是说,可能包含重复条目)。将 PID 写入一个 cgroup 的tasks文件,可将此进程移至该 cgroup。
- cgroup.procs
- 包含在 cgroup 中运行的线程群组列表(由它们的 TGID 表示)。TGID 列表不一定是有序的,也不一定是特有的(也就是说,可能包含重复条目)。将 TGID 写入 cgroup 的cgroup.procs文件,可将此线程组群移至该 cgroup。
- cgroup.event_control
- 与 cgroup 的通知 API 一起,允许 cgroup 的变更状态通知被发送。
- notify_on_release
- 包含 Boolean 值,1或者0,分别可以启动和禁用释放代理的指令。如果notify_on_release启用,当 cgroup 不再包含任何任务时(即,cgroup 的tasks文件包含 PID,而 PID 被移除,致使文件变空),kernel 会执行release_agent文件的内容。通向此空 cgroup 的路径会作为释放代理的参数被提供。notify_on_release参数的默认值在 root cgroup 中是0。所有非 root cgroup 从其父 cgroup 处继承notify_on_release的值。
- release_agent (仅在 root group 中出现)
- 当 “notify on release” 被触发,它包含要执行的指令。一旦 cgroup 的所有进程被清空,并且notify_on_release标记被启用,kernel 会运行release_agent文件中的指令,并且提供通向被清空 cgroup 的相关路径(与 root cgroup 相关)作为参数。例如,释放代理可以用来自动移除空 cgroup,更多信息,请参阅例 A.4 “自动移除空 cgroup”。例 A.4. 自动移除空 cgroup 参照以下步骤,可将空 cgroup 从cpucgroup 中自动移除:- 例如,创建一个 shell 脚本用来移除空cpucgroups,将其放入/usr/local/bin,并使其可运行。~]# cat /usr/local/bin/remove-empty-cpu-cgroup.sh #!/bin/sh rmdir /cgroup/cpu/$1 ~]# chmod +x /usr/local/bin/remove-empty-cpu-cgroup.sh ~]# cat /usr/local/bin/remove-empty-cpu-cgroup.sh #!/bin/sh rmdir /cgroup/cpu/$1 ~]# chmod +x /usr/local/bin/remove-empty-cpu-cgroup.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow $1变量包含到达已清空 cgroup 的相对路径。
- 在cpucgroup,启动notify_on_release标签:echo 1 > /cgroup/cpu/notify_on_release ~]# echo 1 > /cgroup/cpu/notify_on_releaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 在cpucgroup 中,指定一个可用的释放代理:echo "/usr/local/bin/remove-empty-cpu-cgroup.sh" > /cgroup/cpu/release_agent ~]# echo "/usr/local/bin/remove-empty-cpu-cgroup.sh" > /cgroup/cpu/release_agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 测试您的配置,以确保已清空 cgroup 被正确移除:Copy to Clipboard Copied! Toggle word wrap Toggle overflow