cgroups

维基百科,自由的百科全书
(重定向自控制組
跳转至: 导航搜索
cgroups
原作者 Paul Menage 與 Rohit Seth
開發者 kernel.org (Tejun Heo與其他成員)以及freedesktop.org
初始版本 2007年;7年前 (2007)
编程语言 C語言
操作系统 Linux
类型 行程群組的資源管理功能
许可协议 GPLLGPL
網站 www.kernel.org/doc/Documentation/cgroups/www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/
Unified hierarchy cgroups 且 systemd.

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]

参见[编辑]

引用[编辑]

  1. ^ Jonathan Corbet. Process containers. LWN.net. 2007-05-29. 
  2. ^ 2.0 2.1 Jonathan Corbet. Notes from a container. LWN.net. 2007-10-29. 
  3. ^ Jonathan Corbet. Controlling memory use in containers. LWN. 2007-07-31. 
  4. ^ Balbir Singh, Vaidynathan Srinivasan. Containers: Challenges with the memory resource controller and its performance. Ottawa Linux Symposium. July 2007. 
  5. ^ Jonathan Corbet. Kernel space: Fair user scheduling for Linux. Network World. 2007-10-23. 
  6. ^ Kamkamezawa Hiroyu. Cgroup and Memory Resource Controller (PDF presentation slides). Japan Linux Symposium. 2008-11-19. 
  7. ^ 7.0 7.1 Dave Hansen. Resource Management (PDF presentation slides). Linux Foundation. 

外部连接[编辑]