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 ...
随机推荐
- areas表-省市区
不全,缺少台湾省.香港.澳门:新疆重复了 /* Navicat MySQL Data Transfer Source Server : win7_local Source Server Version ...
- django模型:为已存在的表建立模型
为已经存在的表建立模型:参考https://blog.csdn.net/opera95/article/details/78200024 为已经存在的表建立模型1.python manage.py i ...
- ALV tree DUMP 问题处理-20180328
Category ABAP Programming Error Runtime Errors MESSAGE_TYPE_X ABAP Program SAPLOLEA Application Comp ...
- R语言 dbWriteTable 写入数据库 为空和乱码问题
在windows环境下 用RMySQL 写入数据库中文数据为空 或者乱码问题. 找了下资料 一般情况是 用 insert 语句插入,结合现有业务有点麻烦,放弃了. 还有一种方式换平台,由于经常在win ...
- PAT 1140 Look-and-say Sequence [比较]
1140 Look-and-say Sequence (20 分) Look-and-say sequence is a sequence of integers as the following: ...
- cocos2dx 3.x 精灵重叠时点击最上层的精灵
ps. 这个方法只适用设置精灵的触摸.. //注册触摸事件..3.X后可以在这样写..不需要重新声明 EventListenerTouchOneByOne *listener = EventListe ...
- 小练手:用HTML5 Canvas绘制谢尔宾斯基三角形
文章首发于我的知乎专栏,原地址:https://zhuanlan.zhihu.com/p/26606208 以前看到过一个问题:谢尔宾斯基三角形能用编程写出来么?该怎么写? - 知乎,在回答里,各方大 ...
- ServletConfig获取Servlet的公共参数方法
web.xml配置: <servlet> <servlet-name>AServlet</servlet-name> <servlet-class>AS ...
- 【Linux学习】1.Linux基础知识
记录学习Linux 系统的相关知识点,欢迎大家拍砖交流,一起成长:QQ:2712192471 作者背景:前端开发工程师 | Python | web安全爱好者 一,Windows系统下 Linux 的 ...
- Linux查看本机登陆用户信息(w、who、last和lastlog命令)
w 命令 查看 Linux 服务器上目前已经登录的用户信息 [root@localhost ~]# w :: up :, users, load average:0.00, 0.00, 0.00 US ...