cgroup使用示例-cpu限制

环境:我用的系统是ubuntu14.04,另外在ubuntu12.04.4上也测试可用。
1、查看cgroup子系统
cgroup使用示例-cpu限制
我的环境默认是没有lssubsys程序,需要安装cgroup-bin,执行命令apt-get install cgroup-bin。
 
2、查看cgroup子系统的层级路径
cgroup使用示例-cpu限制
说明子系统和层级已建立了关联。
 
3、建立一个CPU控制族群
cgroup使用示例-cpu限制
首先进入cpu子系统对应的层级路径下:cd /sys/fs/cgroup/cpu
通过新建文件夹创建一个cpu控制族群:mkdir cg1,即新建了一个cpu控制族群:cg1 
新建cg1之后,可以看到目录下自动建立了相关的文件,这些文件是伪文件。我们的测试示例主要用到cpu.cfs_period_us和cpu.cfs_quota_us两个文件。
cpu.cfs_period_us:cpu分配的周期(微秒),默认为100000。
cpu.cfs_quota_us:表示该control group限制占用的时间(微秒),默认为-1,表示不限制。如果设为50000,表示占用50000/10000=50%的CPU。
这里,我们设置占用30%的CPU,即把cpu.cfs_quota_us设置为30000。
cgroup使用示例-cpu限制

4、编写测试程序
cgroup使用示例-cpu限制
写了一个shell脚本,无限的循环计数。
执行该脚本:
cgroup使用示例-cpu限制
运行top命令查看:
cgroup使用示例-cpu限制
可以看到cpu占用100%。
 
5、将该进程放到新建的control group中
cgroup使用示例-cpu限制
其实就把该进程号4012写入到control group的tasks文件中
再次查看top命令执行情况:
cgroup使用示例-cpu限制
可以看到cpu.sh程序占用的cpu控制在30%左右。

 

posted @ 2018-04-22 09:10  mude  阅读(208)  评论(0)    收藏  举报