centos cgroup配置
centOS 6:
1. 启用cgroup
查看内核是否支持cgroup功能:cat /boot/config-`uname -r` | grep -i rt_group
查看支持的子系统:lssubsys
2. 关闭SELinux。SELinux会阻止cgconfigparser的写操作,所以需要关闭SELinux
修改/etc/selinux/config文件,设置SELINUX=disabled,并reboot
3. 配置cgrules.conf和cgconfig.conf。
cgrules.conf:
zoro cpu zoro
jerry cpu jerry
cgconfig.conf:
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpu;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
} group zoro {
cpu {
cpu.cfs_perios_us = ;
cpu.cfs_quota_us = ;
}
} group jerry {
cpu {
cpu.cfs_perios_us = ;
cpu.cfs_quota_us = ;
}
}
4. 重启cgconfig服务
* systemctl restart cgconfig.service
* systemctl restart cgred.service
centOS 7
centos7把cgroup设置在了/sys/fs/cgroup/目录下,所以上面的方法会报错。
1.vim /etc/cgrules.conf
@research memory finance ## research组
@research cpu,cpuacct finance ## research组
2.vim /etc/cgconfig.conf
mount {
cpu = /cgroup/cpu/;
cpuacct = /cgroup/cpu/;
memory = /cgroup/memory/;
} group finance {
cpu {
cpu.cfs_period_us=;
cpu.cfs_quota_us=;
}
memory {
memory.limit_in_bytes=100M;
memory.memsw.limit_in_bytes = 102M;
}
}
3.mkdir -p /cgroup/cpu
4.mkdir -p /cgroup/cpuacct
5.mkdir -p /cgroup/memory
6.service cgconfig restart.
如果报错,则尝试运行:
umount /cgroup/cpu
umount /cgroup/memory
/usr/sbin/cgclear -l /etc/cgconfig.conf -L /etc/cgconfig.d -e
/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -L /etc/cgconfig.d -s
如果还是报错,尝试手动创建:
mount -t cgroup -o cpu,cpuacct cpu /cgroup/cpu
mount -t cgroup -o memory memory /cgroup/memory
mkdir -p /cgroup/cpu/finance
mkdir -p /cgroup/memory/finance
echo > /cgroup/cpu/finance/cpu.cfs_period_us
echo > /cgroup/cpu/finance/cpu.cfs_quota_us
检查各配置的值是否正确写入文件,如果没有,则手动写入
echo > /cgroup/cpu/finance/cpu.cfs_period_us
echo > /cgroup/cpu/finance/cpu.cfs_quota_us
7.service cgred restart
如果重启了机器,需重新运行第4、5步。
另一个方法CentOS 7:
直接使用/sys/fs/cgroup/目录:
1./etc/cgrules.conf:
@research memory finance ## research组
@research cpu,cpuacct finance ## research组
2./etc/cgconfig.conf
group finance {
cpu {
cpu.cfs_period_us=;
cpu.cfs_quota_us=;
}
memory {
memory.limit_in_bytes=100M;
memory.memsw.limit_in_bytes = 102M;
}
}
3.service cgconfig restart.
如果报错,则尝试运行:
/usr/sbin/cgclear -l /etc/cgconfig.conf -L /etc/cgconfig.d -e
/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -L /etc/cgconfig.d -s
检查各配置的值是否正确写入文件,如果没有,则手动写入
echo > /cgroup/cpu/finance/cpu.cfs_period_us
echo > /cgroup/cpu/finance/cpu.cfs_quota_us
4.service cgred restart
辅助命令
lscgroup
lssubsys -am
mount -t group
cgclear,cgcreate,cgdelete,cgset,cgget,cgexec # 使用这一系列命令也可以创建组,但是不能和用户/用户组绑定,只能和进程绑定
lsof file/dir
fuser file/dir
cat /proc/[pid]/cgroup
ps -o cgroup [pid]
记录
a) 有时候会报错: *** resource busy 或 cpu already mounted等,
解决办法: umount /cgroup/cpu,如果还是报错,再尝试Ctrl+D登出,再登入。
b) 在配置文件/etc/cgrules.conf中,最好把
@research memory finnce
@research cpu,cpuacct finance
.memory的配置放在cpu的配置前面,原因未知,如果memory在cpu后面配置,
可能会导致/cgroup/memory/finance没有用上,也就是memory限制没生效
.cpu,cpuacct可以放在一起,也可以分开放,有的时候放在一起会报错,
有的时候分开会报错,可能和已有的挂载有关。。。
默认到达memory的限制之后,会kill掉进程,如果想保持进程,可以修改memory.oom_control中的oom_kill_disable值:
echo > memory.oom_control ## 1代表不杀死进程,转而让进程进入‘D’状态等待内存资源。
但是这样容易多进程进入死锁状态。
centos cgroup配置的更多相关文章
- Centos网络配置
网上搜索:centos网络配置的方法,主要包括dns.网关.IP地址,主要是配置resolv.conf\network\ifcfg-eth0这些网络配置文件. 稍后我会就centos7的网络配置进行实 ...
- 阿里云服务器Linux CentOS安装配置(零)目录
阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...
- 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署
阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...
- 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...
- 阿里云服务器Linux CentOS安装配置(七)域名解析
阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...
- 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署
阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...
- 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat 执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...
- 阿里云服务器Linux CentOS安装配置(三)yum安装mysql
阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...
随机推荐
- git学习------>Git 分支管理最佳实践
ps:本文转载于 : https://www.ibm.com/developerworks/cn/java/j-lo-git-mange/index.html Git 是目前最流行的源代码管理工具.大 ...
- 菜鸟也能学cocos2dx3.0 浅析刀塔传奇(下)
首先我们讲点话外的东西,异步载入:众所周知,loading里面一般都是载入数据的,那么是怎么载入的呢? Director::getInstance()->getTextureCache()-&g ...
- byte[]数组和int之间的转换
这里简单记录下两种转换方式: 第一种: 1.int与byte[]之间的转换(类似的byte short,long型) /** * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高 ...
- 子集和问题(应用--换零钱)POJ2229:Sumsets
我一直在纠结换零钱这一类型的题目,今天好好絮叨一下,可以说他是背包的应用,也可以说他是单纯的dp.暂且称他为dp吧. 先上一道模板题目. sdut2777: 小P的故事——神奇的换零钱 题目描述 已知 ...
- JQuery点击标题实现div的收缩
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 分布式远程服务调用(RPC)框架
分布式远程服务调用(RPC)框架 finagle:一个支持容错,协议无关的RPC系统 热门度(没变化) 10.0 活跃度(没变化) 10.0 Watchers:581 Star:6174 Fork: ...
- SpringBoot入门学习(二)
第一讲我们已经讲解了入门Demo,这一讲我们主要讲解包含以下内容 项目内一些属性配置 自定义属性配置 ConfigurationProperties配置 (1)第一个工程创建的时候会自动在工程下创建a ...
- CF1155D Beautiful Array(动态规划)
做法 \(f_{i,0}\)表示以\(i\)结尾未操作时的最大值 \(f_{i,1}\)表示以\(i\)结尾正在操作时的最大值 \(f_{i,2}\)表示以\(i\)结尾已结束操作时的最大值 Code ...
- python---自动群发邮件
生活中我们经常发送邮件,那么我们能不能用Python写一个自动发送邮件的功能呢?答案是肯定的!!! 开始实现功能之前我们需要开启我们邮箱的 IMAP/SMTP功能,我们先了解一下什么是IMAP/SMT ...
- awk循环语句-【AWK学习之旅】
AWK中两种循环语句:if-else 和 while 控制流语句: 1.if-else 求总数,平均值: [root@monitor awkdir]# awk '$3>6 {n = n ...