1. 安装libcgroup
执行下面命令安装libcgroup:
# yum install libcgroup
2. Cgroup配置文件挂载点目录
配置文件: /etc/cgconfig.conf
挂载点根目录: /cgroup
缺省子系统名称及挂载点(通过配置文件可以查看):
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
3. 启动和停止cgroup服务
# sudo service cgconfig start 启动
# sudo service cgconfig stop 停止
4. 系统启动时自动启动cgroup服务
查看服务状态命令:chkconfig --list cgconfig
随系统自动启动命令: chkconfig cgconfig on
5. 显示已经挂载的子系统命令
lssubsys -am
6. 创建cgroup命令
cgcreate -t <uid:gid> -a <uid:gid> -g <subsystems:cgroup-path>
-t <uid:gid> 指定允许向 cgroup 分配任务的用户和组ID,这里的cgroup是参数cgroup-path所指向的层次的cgroup, 即所要创建的cgroup。
-a <uid:gid> 指定允许管理 cgroup 和更改子系统参数的用户和组 ID
-g <subsystems:cgroup-path>
如:cgcreate -g memory:test_cgroup
7. 查看刚创建好的cgroup
cgsnapshot -s
8. 将刚创建好的cgroup在系统启动时自动挂载
通过cgcreate创建的cgroup会临时在系统中存在,可以通过cgsnapshot -s命令查看到,但新建的cgroup并没有保存,在系统重启时,自动消失了。
这里需要在配置文件中设置新的group,如:
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
}
group test_cgroup {
perm {
admin {
uid = endeca_admin;
gid = root;
}
task {
uid = root;
gid = root;
}
}
memory {
memory.memsw.failcnt="0";
memory.memsw.limit_in_bytes="9223372036854775807";
memory.memsw.max_usage_in_bytes="0";
memory.move_charge_at_immigrate="0";
memory.swappiness="60";
memory.use_hierarchy="0";
memory.failcnt="0";
memory.soft_limit_in_bytes="9223372036854775807";
memory.limit_in_bytes="9223372036854775807";
memory.max_usage_in_bytes="0";
}
}