码迷,mamicode.com
首页 > 其他好文 > 详细

cgroup实现cpu绑定和资源使用比例限制

时间:2017-07-10 10:29:56      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:cgroup cpu.share cpuset

      背景原理:部分物理服务器上部署了多个应用,为了避免由于部分应用异常造成机器负载过高,影响其他应用,对每个应用所属进程进行cpu使用限制。

     限制内容:A,绑定应用使用除0号cpu以外的其他cpu;B,设定cpu资源使用比例,当资源充足时候,可以使用超过预设比例的cpu资源,当资源紧张时候,按照比例使用cpu资源。

   启动脚本如下:

  #!/bin/bash
source /etc/profile
#获取cpu核心数量并减去1,保留cpu 0
cpuNumber=$(cat /proc/cpuinfo |grep processor|wc -l)
cgCpuNumber=$(expr $cpuNumber - 1)
#应用名称
appName="test_tomcat"
#设置cgroup 中cpu 绑定
cgcreate -g cpuset:cpuset_${appName}
cgset -r cpuset.mems="0" cpuset_${appName}
cgset -r cpuset.cpus="1-${cgCpuNumber}" cpuset_${appName}
#设置cgroup资源使用比例
cgcreate -g cpu:cpu_share_${appName}
cgset -r cpu.shares=1024 cpu_share_${appName}
#启动进程,该方式会限制该主进程,以及创建的子进程
cgexec -g cpuset:cpuset_${appName} -g cpu:cpu_share_${appName} su - tomcat -c "/data/tomcat01/bin/start.sh"


使用效果:使用后 8核心虚拟机,cpu load 增加到 50以上,ssh 操作无卡顿现象,其他正常应用未收到高负载影响。


参考文献中提供压测脚本,可以替换上面的tomcat:

 http://www.jianshu.com/p/dc3140699e79 


cgroup实现cpu绑定和资源使用比例限制

标签:cgroup cpu.share cpuset

原文地址:http://emulator.blog.51cto.com/134664/1945735

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!