2014年9月24日星期三

cgroups简介

cgroups,其名称源自控制组群(control groups)的简写,是Linux内核的一个功能,用来限制,控制与分离一个进程组群资源(如CPU、内存、磁盘输入输出等)。
这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)[1]。在2007年时,因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去[2]。自那以后,又添加了很多功能。

功能[编辑]

cgroups的一个设计目标是为不同的应用情况提供统一的接口,从控制单一进程(像nice)到系统级虚拟化(像opeNVZLinux-VServerLXC)。cgroups提供:
  • 资源限制:组可以被设置不超过设定的内存限制;这也包括虚拟内存[3] 原来的分页机制是在Linux研讨会Containers: Challenges with the memory resource controller and its performance报告中提出的。[4]
  • 优先化:一些组可能会得到大量的CPU[5] 或磁盘输入输出通量。[6]
  • 报告:用来衡量系统确实把多少资源用到适合的目的上。[7]
  • 分离:为组分离命名空间,这样一个组不会看到另一个组的进程、网络连接和文件。[2]
  • 控制:冻结组或检查点和重启动。[7]

参见[编辑]

没有评论:

发表评论