首页 > 代码库 > cgroup学习笔记1 -- cgroup安装与入门

cgroup学习笔记1 -- cgroup安装与入门

参考资料

http://www.ibm.com/developerworks/cn/linux/1506_cgroup/ 
http://www.elmerzhang.com/2012/11/cgroups-learning-1-introduction/ 
http://blog.csdn.net/jk198310/article/details/9292667 
http://blog.chinaunix.net/uid-20788636-id-4451420.html

 

1 安装

1.1 系统配置

[root@localhost ~]# uname -a 
Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 
[root@localhost ~]# cat /proc/version 
Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Mar 6 11:36:42 UTC 2015

1.2 安装

  • yum install libcgroup(安装cgroup)

2 基本概念

在cgroup中存在几个基本概念:

  • 任务(task):在 cgroups 中,任务就是系统的一个进程
  • 控制族群(control group):控制族群就是一组按照某种资源限制划分的进程集合。Cgroups 中的资源控制都是以控制族群为单位实现。一个进程可以加入到多个控制族群。一个cgroups一般情况下不止一个进程。
  • 子系统(Subsystem):子系统是任务组中的一个模块,一个子系统表示单一的资源,如CPU或者内存
  • 层级(hierarchy):控制族群可以组织成 hierarchical 的形式,既一颗控制族群树。子控制组自动继承父节点的特定属性,当然子控制组还可以有自己特定的属性
 

2.1 子系统

  • blkio – 该子系统限制块设备的输入输出访问,例如物理驱动器(磁盘、SSD、USB等)。
  • cpu – 该子系统调度 cgroup 任务对 CPU 的访问。
  • cpuacct – 该子系统生成 cgroup 中的任务使用 CPU 资源的报告。
  • cpuset – 该子系统将各个 CPU 和内存节点指定给 cgroup 中的任务。
  • devices – 该子系统可以允许或者禁止 cgroup 中的任务访问某个设备。
  • freezer – 该子系统暂停或者继续 cgroup 中的任务。
  • memory – 该子系统设置 cgroup 中任务对内存的使用限制,并且生成各任务对内存的使用报告。
  • net_col – 该子系统使用类标识符 ( classid ) 来标记网络包,以使用 Linux 流量控制 ( tc ) 能够分辨 cgroup 中的特定任务所发出的数据包。
  • net_prio – 该子系统可以动态地设置每个网络接口 ( network interface ) 的优先级。
  • ns – 命名空间子系统

服务器支持的子系统可以查看/proc/cgroups查看:

[root@localhost proc]# cat /proc/cgroups #subsys_name    hierarchy       num_cgroups     enabledcpuset          2               1               1cpu             3               1               1cpuacct         3               1               1memory          4               1               1devices         5               1               1freezer         6               1               1net_cls         7               1               1blkio           8               1               1perf_event      9               1               1hugetlb         10              1 

  

cgroup学习笔记1 -- cgroup安装与入门