第 2 章 使用控制组群
		使用 cgroup 的最简单的方法是安装 libcgroup 软件包,该软件包包含大量与 cgroup 有关的命令行工具及其相关 man page。您可以使用 shell 命令和可在任意系统中使用的工具挂载层级并设定 cgroup 参数(不保留)。但是,使用 libcgroup 提供的工具可简化过程并扩展功能。因此,本指南着重全面介绍 libcgroup 命令。在大多数情况下,我们会将对等的 shell 命令包括在内以便清楚阐述基础机理。我们建议您在可行的情况下尽量使用 libcgroup 命令。
	
注意
			要使用 cgroup,首先请确定在您的系统中安装 libcgroup 软件包,方法为作为 root 运行:
		
yum install libcgroup
~]# yum install libcgroup2.1. cgconfig 服务
复制链接链接已复制到粘贴板!
			由 libcgroup 软件包安装的 
cgconfig 服务可提供创建层级的方便方法,并在层级中附加子系统,且在那些层级中管理 cgroup。我们建议您使用 cgconfig 在您的系统中管理层级和 cgroup。
		
			红帽企业版 Linux  6 不默认启动 
cgconfig 服务。当使用 chkconfig 启动该服务时,它读取 cgroup 配置文件 -- /etc/cgconfig.conf。Cgroup 因此会在不同会话间重新创建并保留。根据配置文件的内容,cgconfig 可创建层级、挂载所需文件系统、创建 cgroup 以及为每个组群设定子系统参数。
		
			libcgroup 软件包默认安装的 
/etc/cgconfig.conf 文件为每个子系统创建并挂载独立层级,并在这些层级中附加子系统。
		
			如果您停止 
cgconfig 服务(使用 service cgconfig stop 命令),则会卸载它挂载的所有层级。
		2.1.1. cgconfig.conf 文件
复制链接链接已复制到粘贴板!
cgconfig.conf 文件包含两个主要类型的条目 -- mount 和 group。挂载条目生成并挂载层级并将其作为虚拟文件系统,同时将子系统附加到那些层级中。挂载条目使用以下语法定义:
			mount {
    <controller> = <path>;
    …
}
mount {
    <controller> = <path>;
    …
}
				示例用法请参考 例 2.1 “创建挂载条目”。
			
例 2.1. 创建挂载条目
					以下示例为 
cpuset 子系统创建层级:
				mount {
    cpuset = /cgroup/cpu;
}
mount {
    cpuset = /cgroup/cpu;
}
					对等的 shell 命令:
				
mkdir /cgroup/cpu mount -t cgroup -o cpu cpu /cgroup/cpu
~]# mkdir /cgroup/cpu
~]# mount -t cgroup -o cpu cpu /cgroup/cpu
				组群条目创建 cgroup 并设定子系统参数。组群条目使用以下语法定义:
			
				请注意 
permissions 部分是可选的。要为组群条目定义权限,请使用以下语法:
			
				示例用法请参考 例 2.2 “创建组群条目”:
			
例 2.2. 创建组群条目
					以下示例为 sql 守护进程创建 cgroup,可为 
sqladmin 组群中的用户在 cgroup 中添加任务,并让 root 用户修改子系统参数:
				
					当与 例 2.1 “创建挂载条目” 中的挂载条目示例合并时,对等的 shell 命令为:
				
mkdir -p /cgroup/cpu/daemons/sql chown root:root /cgroup/cpu/daemons/sql/* chown root:sqladmin /cgroup/cpu/daemons/sql/tasks echo 100 > /cgroup/cpu/daemons/sql/cpu.shares
~]# mkdir -p /cgroup/cpu/daemons/sql
~]# chown root:root /cgroup/cpu/daemons/sql/*
~]# chown root:sqladmin /cgroup/cpu/daemons/sql/tasks
~]# echo 100 > /cgroup/cpu/daemons/sql/cpu.shares注意
					您必须重启 
 
Copy to Clipboard
Copied!
 
 
Toggle word wrap
Toggle overflow
 
 
				
cgconfig 服务方可使 /etc/cgconfig.conf 中的更改生效: 
service cgconfig restart
~]# service cgconfig restart
				当安装 cgroups 软件包时,会在 
/etc/cgconfig.conf 中写入示例配置文件。每行开始的 # 符号将该行注释出来以便 cgconfig 服务忽略它。