本页使用了标题或全文手工转换

cgroups

维基百科,自由的百科全书
跳到导航 跳到搜索

cgroups
原作者Paul Menage 与 Rohit Seth
开发者kernel.org (Tejun Heo与其他成员)以及freedesktop.org
初始版本2007年,​15年前​(2007
编程语言C语言
操作系统Linux
类型进程组的资源管理功能
许可协议GPLLGPL
网站www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txtwww.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/
Unified hierarchy cgroups 且 systemd.

cgroups,其名称源自控制组群(英语:control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组资源(如CPU、内存、磁盘输入输出等)。

这个项目最早是由Google的工程师(主要是Paul Menage和Rohit Seth)在2006年发起,最早的名称为进程容器(process containers)[1]。在2007年时,因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去[2]。自那以后,又添加了很多功能。

功能[编辑]

cgroups的一个设计目标是为不同的应用情况提供统一的接口,从控制单一进程(像nice)到操作系统层虚拟化(像OpenVZLinux-VServerLXC)。cgroups提供:

  • 资源限制:组可以被设置不超过设定的内存限制;这也包括虚拟内存[3] [4]
  • 优先级:一些组可能会得到大量的CPU[5] 或磁盘IO吞吐量。[6]
  • 结算:用来度量系统实际用了多少资源。[7]
  • 控制:冻结组或检查点和重启动。[7]

参见[编辑]

引用[编辑]

  1. ^ Jonathan Corbet. Process containers. LWN.net. 2007-05-29 [2012-06-16]. (原始内容存档于2017-06-12). 
  2. ^ Jonathan Corbet. Notes from a container. LWN.net. 2007-10-29 [2012-06-16]. (原始内容存档于2012-06-22). 
  3. ^ Jonathan Corbet. Controlling memory use in containers. LWN. 2007-07-31 [2012-06-16]. (原始内容存档于2018-01-29). 
  4. ^ Balbir Singh, Vaidynathan Srinivasan. Containers: Challenges with the memory resource controller and its performance (PDF). Ottawa Linux Symposium. July 2007 [2012-06-16]. (原始内容存档 (PDF)于2012-05-23). 
  5. ^ Jonathan Corbet. Kernel space: Fair user scheduling for Linux. Network World. 2007-10-23 [2012-06-16]. (原始内容存档于2009-05-24). 
  6. ^ Kamkamezawa Hiroyu. Cgroup and Memory Resource Controller (PDF). Japan Linux Symposium. 2008-11-19 [2012-06-16]. (原始内容 (PDF presentation slides)存档于2011-07-22). 
  7. ^ 7.0 7.1 Dave Hansen. Resource Management (PDF). Linux Foundation. [2012-06-16]. (原始内容 (PDF presentation slides)存档于2011-10-09). 

外部链接[编辑]