centos 6,7 上cgroup资源限制使用举例

在Centos6,7使用cgroup做内存限制,使用的配置包是libcgroup,具体方案和操作步骤如下。

步骤1:安装配置管理包

Centos 6:

  # yum install libcgroup

Centos 7:

  # yum install libcgroup libcgroup-tools

步骤2:添加控制组

创建文件 /etc/cgconfig.d/cgroup.orange.conf,限制orange用户物理内存只使用200M,并禁用orange用户使用swap。

文件内容如下:

group orange_limitmem{
        memory {
            memory.limit_in_bytes=200m;
            memory.memsw.limit_in_bytes=200m;
        }
}

cgred服务将根据这条规则,匹配happy用户的进程。

步骤3:添加规则

在文件/etc/cgrules.conf中添加对happy用户的规则,关联步骤2的控制组:

# echo "orange memory orange_limitmem/">> /etc/cgrules.conf

步骤4:重启配置服务使之生效

Centos 6:

# service cgconfig restart
# service cgred restart

Centos 7:

# systemctl restart cgconfig.service
# systemctl restart cgred.service

其中,cgconfig服务负责资源控制组挂载;
cgred服务负责识别进程,并将进程添加到指定资源控制组。

步骤5:测试

使用orange用户,编写消耗内存脚本,观察脚本执行情况。

#!/bin/bash
x='a'
while [ True ];do
        x=$x$x
done;

可以看到,进程被Kill。

猜你喜欢

转载自www.cnblogs.com/lanyangsh/p/9420168.html