<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Cgroups</id>
	<title>Cgroups - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Cgroups"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Cgroups&amp;action=history"/>
	<updated>2026-06-30T17:58:21Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Cgroups&amp;diff=1805129&amp;oldid=prev</id>
		<title>imported&gt;Cewbot：​清理跨語言連結检查点成為內部連結:編輯摘要的紅色連結經繁簡轉換後存在，非bot錯誤編輯 (本次機械人作業已完成10.1%)</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Cgroups&amp;diff=1805129&amp;oldid=prev"/>
		<updated>2026-03-07T15:39:50Z</updated>

		<summary type="html">&lt;p&gt;清理跨語言連結&lt;a href=&quot;/wiki/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%A3%80%E6%9F%A5%E7%82%B9&quot; title=&quot;应用程序检查点&quot;&gt;检查点&lt;/a&gt;成為內部連結:編輯摘要的紅色連結經繁簡轉換後存在，非bot錯誤編輯 (本次機械人作業已完成10.1%)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT}}&lt;br /&gt;
{{Not|WP:CGROUP|WP:公共轉換組|selfref=yes}}&lt;br /&gt;
{{lowercase}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = cgroups&lt;br /&gt;
| title                  = cgroups&lt;br /&gt;
| logo                   = &amp;lt;!-- Image name is enough --&amp;gt;&lt;br /&gt;
| logo caption           = &lt;br /&gt;
| logo_size              = &lt;br /&gt;
| logo_alt               = &lt;br /&gt;
| screenshot             = &amp;lt;!-- Image name is enough --&amp;gt;&lt;br /&gt;
| caption                = &lt;br /&gt;
| screenshot_size        = &lt;br /&gt;
| screenshot_alt         = &lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = Paul Menage 與 Rohit Seth&lt;br /&gt;
| developer              = [[kernel.org]] （Tejun Heo與其他成員）以及[[freedesktop.org]]&lt;br /&gt;
| released               = {{Start date and age|2007}}&lt;br /&gt;
| discontinued           = &lt;br /&gt;
| status                 = &lt;br /&gt;
| programming language   = [[C語言]]&lt;br /&gt;
| operating system       = [[Linux]]&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = &lt;br /&gt;
| language               = &lt;br /&gt;
| language count         = &amp;lt;!-- DO NOT include this parameter unless you know what it does --&amp;gt;&lt;br /&gt;
| language footnote      = &lt;br /&gt;
| genre                  = 行程群組的資源管理功能&lt;br /&gt;
| license                = [[GPL]] 與 [[LGPL]]&lt;br /&gt;
| website                = {{URL|https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt}} 與 {{URL|http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/}}&lt;br /&gt;
}}&lt;br /&gt;
[[File:Linux kernel unified hierarchy cgroups and systemd.svg|thumb|300px|Unified hierarchy cgroups 且 [[systemd]].]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cgroups&amp;#039;&amp;#039;&amp;#039;，其名稱源自&amp;#039;&amp;#039;&amp;#039;控制群組&amp;#039;&amp;#039;&amp;#039;（{{langx|en|control groups}}）的簡寫，是[[Linux内核]]的一个功能，用来限制、控制與分離一个[[行程群組]]的[[資源 (計算機科學)|资源]]（如CPU、内存、磁盘输入输出等）&amp;lt;ref&amp;gt;{{Cite web|title=Control Group v2 — The Linux Kernel documentation|url=https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#controllers|website=www.kernel.org|access-date=2024-02-29|archive-date=2018-11-07|archive-url=https://web.archive.org/web/20181107145211/https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#controllers|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
這個專案最早是由[[Google]]的工程師（主要是Paul Menage和Rohit Seth）在2006年發起，最早的名稱為&amp;#039;&amp;#039;&amp;#039;进程容器&amp;#039;&amp;#039;&amp;#039;（process containers）&amp;lt;ref&amp;gt;{{Cite news |date=2007-05-29 |author=Jonathan Corbet |title=Process containers |publisher=LWN.net |url=http://lwn.net/Articles/236038/ |accessdate=2012-06-16 |archive-date=2017-06-12 |archive-url=https://web.archive.org/web/20170612014916/https://lwn.net/Articles/236038/ |dead-url=no }}&amp;lt;/ref&amp;gt;。在2007年時，因為在[[Linux內核]]中，容器（container）這個名詞有許多不同的意義，為避免混亂，被重新命名為cgroup，並且被合併到2.6.24版的内核中去（该版本于2008年1月发布）&amp;lt;ref name=lwn-notes&amp;gt;{{Cite news |date=2007-10-29 |author=Jonathan Corbet |title=Notes from a container |publisher=LWN.net |url=http://lwn.net/Articles/256389/ |accessdate=2012-06-16 |archive-date=2012-06-22 |archive-url=https://web.archive.org/web/20120622092309/http://lwn.net/Articles/256389/ |dead-url=no }}&amp;lt;/ref&amp;gt;。自那以后，开发人员陆续添加了许多新功能和控制器，例如2014年对[[kernfs (Linux)|kernfs]]的支持&amp;lt;ref&amp;gt;{{Cite web|title=LKML: Tejun Heo: [PATCHSET cgroup/for-3.15] cgroup: convert to kernfs|url=https://lkml.org/lkml/2014/1/28/502|website=lkml.org|access-date=2024-02-29|archive-date=2018-10-12|archive-url=https://web.archive.org/web/20181012020951/https://lkml.org/lkml/2014/1/28/502|dead-url=no}}&amp;lt;/ref&amp;gt;，[[防火墙]]功能&amp;lt;ref&amp;gt;{{Cite web|title=[PATCH 12/12] netfilter: x_tables: lightweight process control group matching — Linux Network Development|url=http://www.spinics.net/lists/netdev/msg264727.html|website=web.archive.org|date=2014-04-24|access-date=2024-02-29|archive-date=2014-04-24|archive-url=https://web.archive.org/web/20140424095421/http://www.spinics.net/lists/netdev/msg264727.html|dead-url=unfit}}&amp;lt;/ref&amp;gt;和统一层次结构&amp;lt;ref&amp;gt;{{Cite web|title=LKML: Tejun Heo: [PATCHSET cgroup/for-3.15] cgroup: prepare for the default unified hierarchy|url=https://lkml.org/lkml/2014/3/13/503|website=lkml.org|access-date=2024-02-29|archive-date=2014-03-20|archive-url=https://web.archive.org/web/20140320040956/http://lkml.org/lkml/2014/3/13/503|dead-url=no}}&amp;lt;/ref&amp;gt;。cgroup v2在Linux内核4.5中被合并&amp;lt;ref&amp;gt;{{Cite web|title=kernel/git/torvalds/linux.git - Linux kernel source tree|url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/Documentation/cgroup-v2.txt?id=v4.5&amp;amp;id2=v4.4|website=git.kernel.org|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;，接口和内部功能发生了重大变化&amp;lt;ref&amp;gt;{{Cite web|title=Control Group v2 — The Linux Kernel documentation|url=https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#multiple-hierarchies|website=www.kernel.org|access-date=2024-02-29|archive-date=2018-11-07|archive-url=https://web.archive.org/web/20181107145211/https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#multiple-hierarchies|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==功能==&lt;br /&gt;
cgroups的一个设计目标是为不同的用例提供统一的接口，从控制单一进程（像[[Nice值]]）到[[作業系統層虛擬化]]（像[[OpenVZ]]，{{link-en|Linux-VServer}}，[[LXC]]）。cgroups提供：&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;资源限制（Resource limiting）：组&amp;#039;&amp;#039;&amp;#039;可以被设置不超过设定的[[内存]]限制（这也包括{{Internal link helper/en|页面缓存|Page_cache}}）&amp;lt;ref&amp;gt;{{Cite news|date=2007-07-31|author=Jonathan Corbet|title=Controlling memory use in containers|publisher=LWN|url=http://lwn.net/Articles/243795/|accessdate=2012-06-16|archive-date=2018-01-29|archive-url=https://web.archive.org/web/20180129034252/https://lwn.net/Articles/243795/|dead-url=no}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;ols-memcg&amp;quot;&amp;gt;{{Cite news|author=Balbir Singh, Vaidynathan Srinivasan|date=July 2007|publisher=Ottawa Linux Symposium|url=http://www.kernel.org/doc/ols/2007/ols2007v2-pages-209-222.pdf|title=Containers: Challenges with the memory resource controller and its performance|accessdate=2012-06-16|archive-date=2012-05-23|archive-url=https://web.archive.org/web/20120523223333/http://www.kernel.org/doc/ols/2007/ols2007v2-pages-209-222.pdf|dead-url=no}}&amp;lt;/ref&amp;gt;、I/O带宽限制&amp;lt;ref&amp;gt;{{Cite web|title=Using cgroups to limit I/O · André Carvalho|url=https://andrestc.com/post/cgroups-io/|website=andrestc.com|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;、CPU配额限制&amp;lt;ref&amp;gt;{{Cite web|title=The container throttling problem|url=https://danluu.com/cgroup-throttling/|website=danluu.com|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;、CPU集合限制&amp;lt;ref&amp;gt;{{Cite web|title=&amp;quot;CPUSETS&amp;quot;|url=https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt|author=Derr, Simon (2004).}}&amp;lt;/ref&amp;gt;或[[文件描述符|最大打开文件数]]&amp;lt;ref&amp;gt;{{Cite web|title=setrlimit(2) — Arch manual pages|url=https://man.archlinux.org/man/setrlimit.2.en|website=man.archlinux.org|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;优先级设定（Prioritization）：&amp;#039;&amp;#039;&amp;#039;一些&amp;#039;&amp;#039;&amp;#039;组&amp;#039;&amp;#039;&amp;#039;可能会得到更大的CPU&amp;lt;ref&amp;gt;{{Cite news | date = 2007-10-23 | author = Jonathan Corbet | title = Kernel space: Fair user scheduling for Linux | publisher = Network World | url = http://www.linuxworld.com/news/2007/101207-kernel.html | accessdate = 2012-06-16 | archive-date = 2009-05-24 | archive-url = https://web.archive.org/web/20090524025315/http://www.linuxworld.com/news/2007/101207-kernel.html | dead-url = no }}&amp;lt;/ref&amp;gt;或磁盘IO吞吐量。&amp;lt;ref&amp;gt;{{cite conference |date=2008-11-19 |author=Kamkamezawa Hiroyu |title=Cgroup and Memory Resource Controller |format=PDF presentation slides |publisher=Japan Linux Symposium |url=http://www.linuxfoundation.jp/jp_uploads/seminar20081119/CgroupMemcgMaster.pdf |deadurl=yes |archiveurl=https://web.archive.org/web/20110722113016/http://www.linuxfoundation.jp/jp_uploads/seminar20081119/CgroupMemcgMaster.pdf |archivedate=2011-07-22 |access-date=2012-06-16 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;结算（Accounting）：&amp;#039;&amp;#039;&amp;#039;衡量一个&amp;#039;&amp;#039;&amp;#039;组&amp;#039;&amp;#039;&amp;#039;的资源使用情况，可以用于计费等目的&amp;lt;ref name=lf-hansen&amp;gt;{{cite conference | author = Dave Hansen | title = Resource Management | format = PDF presentation slides | publisher = Linux Foundation | url = http://events.linuxfoundation.org/slides/lfcs09_hansen2.pdf | access-date = 2012-06-16 | archive-url = https://web.archive.org/web/20111009082943/https://events.linuxfoundation.org/slides/lfcs09_hansen2.pdf | archive-date = 2011-10-09 | dead-url = yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;控制（Control）：&amp;#039;&amp;#039;&amp;#039;冻结&amp;#039;&amp;#039;&amp;#039;组&amp;#039;&amp;#039;&amp;#039;中的进程，运行[[应用程序检查点|检查点]]和重新启动。&amp;lt;ref name=lf-hansen /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用 ==&lt;br /&gt;
控制组（cgroup）是一组受相同条件约束的进程，并与一组参数或限制相关联。这些组可以是层次结构的，意味着每个组都从其父组继承限制。&lt;br /&gt;
&lt;br /&gt;
内核通过cgroup接口提供对多个控制器（也称为子系统）的访问&amp;lt;ref&amp;gt;{{Cite web|title=Notes from a container [LWN.net]|url=https://lwn.net/Articles/256389/|website=lwn.net|access-date=2024-02-29|archive-date=2018-02-04|archive-url=https://web.archive.org/web/20180204091411/https://lwn.net/Articles/256389/|dead-url=no}}&amp;lt;/ref&amp;gt;；例如，“memory”控制器限制内存使用，“cpuacct”记录CPU使用情况等。&lt;br /&gt;
&lt;br /&gt;
控制组可以通过多种方式使用：&lt;br /&gt;
&lt;br /&gt;
* 手动读写 cgroup 的虚拟文件系统。&lt;br /&gt;
* 使用 &amp;lt;code&amp;gt;cgcreate&amp;lt;/code&amp;gt; 、 &amp;lt;code&amp;gt;cgexec&amp;lt;/code&amp;gt; 和 &amp;lt;code&amp;gt;cgclassify&amp;lt;/code&amp;gt; （来自 &amp;lt;code&amp;gt;libcgroup&amp;lt;/code&amp;gt; ）等工具，即时创建和管理群组。&lt;br /&gt;
* 通过“规则引擎守护程序”，可以根据配置自动将特定用户、组或命令的进程移动到cgroups中。&lt;br /&gt;
* 间接通过使用 cgroups 的其他软件，如[[Docker]]、[[Firejail]]、LXC&amp;lt;ref&amp;gt;{{Cite web|title=IBM Developer|url=https://developer.ibm.com/technologies/linux/|website=developer.ibm.com|access-date=2024-02-29|archive-date=2013-10-03|archive-url=https://web.archive.org/web/20131003180256/http://www.ibm.com/developerworks/linux/library/l-gas-nasm/index.html|dead-url=no}}&amp;lt;/ref&amp;gt;、[[libvirt]]、[[systemd]]、[[Oracle Grid Engine|Open Grid Scheduler/Grid Engine]]&amp;lt;ref&amp;gt;{{Cite web|title=Grid Engine cgroups Integration|url=http://blogs.scalablelogic.com/2012/05/grid-engine-cgroups-integration.html|language=en|last=Rayson|access-date=2024-02-29|archive-date=2013-01-22|archive-url=https://web.archive.org/web/20130122081825/http://blogs.scalablelogic.com/2012/05/grid-engine-cgroups-integration.html|dead-url=no}}&amp;lt;/ref&amp;gt;，以及Google已停止开发的[[lmctfy]]。&lt;br /&gt;
&lt;br /&gt;
Linux 内核文档包含了控制组版本1（cgroup v1）&amp;lt;ref&amp;gt;{{Cite web|title=v1|url=http://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt}}&amp;lt;/ref&amp;gt;和版本2（cgroup v2）&amp;lt;ref&amp;gt;{{Cite web|title=linux/Documentation/admin-guide/cgroup-v2.rst at master · torvalds/linux|url=https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/cgroup-v2.rst|website=GitHub|language=en|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;的一些设置和使用的技术细节。&lt;br /&gt;
&lt;br /&gt;
也可以使用  &amp;lt;code&amp;gt;systemd-cgtop&amp;lt;/code&amp;gt;  命令&amp;lt;ref&amp;gt;{{Cite web|title=systemd-cgtop|url=https://www.freedesktop.org/software/systemd/man/latest/systemd-cgtop.html|website=www.freedesktop.org|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;按资源使用情况显示顶级控制组。&lt;br /&gt;
&lt;br /&gt;
== 重新设计 ==&lt;br /&gt;
cgroups的重新设计始于2013年&amp;lt;ref name=&amp;quot;cgroups redesign by Tejun Heo&amp;quot;&amp;gt;{{cite web|title=All About the Linux Kernel: Cgroup&amp;#039;s Redesign|url=https://www.linuxfoundation.org/blog/2013/08/all-about-the-linux-kernel-cgroups-redesign/|work=[[Linux.com]]|date=2013-08-15|access-date=2014-05-19|archive-date=2019-04-28|archive-url=https://web.archive.org/web/20190428203713/https://www.linuxfoundation.org/blog/2013/08/all-about-the-linux-kernel-cgroups-redesign/|dead-url=yes}}&amp;lt;/ref&amp;gt;，随后在Linux内核的3.15和3.16版本中引入了额外的改变。&amp;lt;ref&amp;gt;{{cite web|title=The unified control group hierarchy in 3.16|url=//lwn.net/Articles/601840/|date=2014-06-11|publisher=[[LWN.net]]}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=Pull cgroup updates for 3.15 from Tejun Heo|url=http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=32d01dc7be4e725ab85ce1d74e8f4adc02ad68dd|date=2014-04-03|publisher=[[kernel.org]]}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=Pull cgroup updates for 3.16 from Tejun Heo|url=http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=14208b0ec56919f5333dd654b1a7d10765d0ad05|date=2014-06-09|publisher=[[kernel.org]]}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 命名空间隔离 ===&lt;br /&gt;
{{Main|{{Internal link helper/en|Linux namespaces}}}}&lt;br /&gt;
虽然不是cgroups工作的技术部分，但Linux内核的一个相关特性是命名空间隔离，它将一组进程分离开来，使它们无法“看到”其他组中的资源。例如，PID命名空间在每个命名空间中提供了一个独立的[[进程ID|进程标识符]]枚举。还有可用的挂载、用户、UTS、网络和SysV IPC命名空间。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;PID namespace (PID命名空间)&amp;#039;&amp;#039;  提供了[[进程标识符]]（PID）、进程列表及其详细信息的分离。虽然新的命名空间与其他同级命名空间隔离，但其“父”命名空间中的进程仍然可以看到子命名空间中的所有进程，尽管PID号码不同。&amp;lt;ref name=&amp;quot;lwn-pid&amp;quot;&amp;gt;{{Cite news|author=Pavel Emelyanov, Kir Kolyshkin|date=19 November 2007|title=PID namespaces in the 2.6.24 kernel|publisher=LWN.net|url=https://lwn.net/Articles/259217/|accessdate=2024-03-01|archive-date=2017-12-08|archive-url=https://web.archive.org/web/20171208175003/https://lwn.net/Articles/259217/|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;Network namespace (网络命名空间)&amp;#039;&amp;#039;  隔离了（物理或虚拟的）网络接口控制器、iptables防火墙规则、路由表等。网络命名空间可以使用&amp;quot;veth&amp;quot;虚拟以太网设备连接在一起。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;quot;UTS&amp;quot; namespace&amp;#039;&amp;#039; 允许更改[[主機名稱|主机名]]。&lt;br /&gt;
* &amp;#039;&amp;#039;[[挂载|Mount]] namespace&amp;#039;&amp;#039; 允许创建不同的文件系统布局，或将某些挂载点设置为只读。&amp;lt;ref&amp;gt;{{Cite news|author=Serge E. Hallyn, Ram Pai|date=17 September 2007|title=Applying mount namespaces|publisher=IBM developerWorks|url=http://www.ibm.com/developerworks/linux/library/l-mount-namespaces.html}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;IPC namespace&amp;#039;&amp;#039; 隔离了命名空间之间的System V[[行程間通訊|进程间通信]]。&lt;br /&gt;
* &amp;#039;&amp;#039;User namespace&amp;#039;&amp;#039; 在命名空间之间隔离用户ID。&amp;lt;ref&amp;gt;{{Cite news|date=27 February 2013|author=Michael Kerrisk|title=Namespaces in operation, part 5: User namespaces|publisher=lwn.net Linux Info from the Source|url=https://lwn.net/Articles/532593/|accessdate=2024-03-01|archive-date=2022-06-04|archive-url=https://web.archive.org/web/20220604234709/https://lwn.net/Articles/532593/|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;Cgroup namespace&amp;#039;&amp;#039; &amp;lt;ref&amp;gt;{{Cite web|title=LKML: Linus Torvalds: Linux 4.6-rc1|url=https://lkml.org/lkml/2016/3/26/132/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
命名空间是通过&amp;quot;unshare&amp;quot;命令或[[系统调用]]创建的，或者作为&amp;quot;clone&amp;quot;系统调用中的&amp;quot;new&amp;quot;标志。&amp;lt;ref&amp;gt;{{cite web|title=Linux kernel documentation on unshare|url=http://www.mjmwired.net/kernel/Documentation/unshare.txt|date=11 January 2006|author=Janak Desai}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在 cgroups 开发早期，添加了&amp;quot;ns&amp;quot;子系统，以整合命名空间和控制组。如果挂载了&amp;quot;ns&amp;quot;控制组，每个命名空间也会在控制组层次结构中创建一个新的组。这是一个实验，后来被认为与cgroups API不太匹配，并从内核中移除。&lt;br /&gt;
&lt;br /&gt;
Linux的命名空间受到了[[貝爾實驗室九號計畫|贝尔实验室九号项目]]中广泛使用的更通用的命名空间功能的启发。&amp;lt;ref&amp;gt;{{cite web|title=The Use of Name Spaces in Plan 9|url=http://www.cs.bell-labs.com/sys/doc/names.html|date=1992|url-status=dead|archive-url=https://web.archive.org/web/20140906153815/http://www.cs.bell-labs.com/sys/doc/names.html|archive-date=6 September 2014|access-date=15 February 2015}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 统一层次结构（Unified hierarchy） ===&lt;br /&gt;
Kernfs于2014年3月引入Linux内核，版本为3.14，主要作者是Tejun Heo。&amp;lt;ref&amp;gt;{{cite web|title=kernfs, sysfs, driver-core: implement synchronous self-removal|url=//lwn.net/Articles/584019/|date=2014-02-03|access-date=2014-04-07|publisher=[[LWN.net]]}}&amp;lt;/ref&amp;gt;一个独立的kernfs的主要动机之一是cgroups文件系统。Kernfs基本上是通过将一些sysfs逻辑拆分为一个独立实体来创建的，从而为其他内核子系统实现自己的虚拟文件系统提供了便利，包括处理设备连接和断开连接、动态创建和删除以及其他属性。重设计继续到Linux内核的3.15版本。&lt;br /&gt;
&lt;br /&gt;
=== 内核内存控制组（kmemcg） ===&lt;br /&gt;
内核内存控制组（kmemcg）已合并到[[Linux内核#主线Linux|Linux内核主线版本]]3.8（{{Release date and age|2013|02|18}}）。&amp;lt;ref&amp;gt;{{cite web|title=memcg: kmem controller infrastructure|url=http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7ae1e1d0f8ac2927ed7e3ca6d15e42d485903459|date=2012-12-18|publisher=[[kernel.org]] source code}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=memcg: kmem accounting basic infrastructure|url=http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=510fc4e11b772fd60f2c545c64d4c55abd07ce36|date=2012-12-18|publisher=[[kernel.org]] source code}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|title=memcg: add documentation about the kmem controller|url=http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d5bdae7d59451b9d63303f7794ef32bb76ba6330|date=2012-12-18|publisher=[[kernel.org]]}}&amp;lt;/ref&amp;gt;kmemcg控制器可以限制内核用于管理其自身内部进程所使用的内存量。&lt;br /&gt;
&lt;br /&gt;
=== cgroup对OOM killer的感知 ===&lt;br /&gt;
Linux内核4.19（2018年10月）引入了对{{Internal link helper/en|OOM killer|OOM killer|OOM killer}}实现的cgroup感知，这增加了以cgroup为单位杀死进程的能力，从而保证了工作负载的完整性。&amp;lt;ref&amp;gt;{{cite web|title=Linux_4.19 - Linux Kernel Newbies|url=https://kernelnewbies.org/Linux_4.19#Memory_management}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 应用 ==&lt;br /&gt;
各种项目都使用cgroups作为基础，包括[[CoreOS]]、[[Docker]]（2013年）、[[Hadoop]]、[[Jelastic]]、[[Kubernetes]]&amp;lt;ref name=&amp;quot;mesosphere.com&amp;quot;&amp;gt;{{Cite web|title=Mesosphere to Bring Google’s Kubernetes to Mesos - Mesosphere|url=https://mesosphere.com/blog/2014/07/10/mesosphere-announces-kubernetes-on-mesos/|website=web.archive.org|date=2015-09-06|access-date=2024-02-29|archive-date=2015-09-06|archive-url=https://web.archive.org/web/20150906165229/https://mesosphere.com/blog/2014/07/10/mesosphere-announces-kubernetes-on-mesos/|dead-url=unfit}}&amp;lt;/ref&amp;gt;、[[lmctfy]]（Let Me Contain That For You）、[[LXC]]（LinuX Containers）、[[systemd]]、[[Mesos]]和Mesosphere&amp;lt;ref name=&amp;quot;mesosphere.com&amp;quot;/&amp;gt;，以及[[HTCondor]]。主要的Linux发行版也采用了它，例如[[Red Hat Enterprise Linux]]（RHEL）6.0在2010年11月采用&amp;lt;ref&amp;gt;{{Cite web|title=&amp;quot;6.0 Release Notes&amp;quot;|url=https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/pdf/6.0_release_notes/red_hat_enterprise_linux-6-6.0_release_notes-en-us.pdf|website=redhat.com.}}&amp;lt;/ref&amp;gt;，比主线Linux内核晚三年。&lt;br /&gt;
&lt;br /&gt;
2019年10月29日，[[Fedora專案|Fedora项目]]将Fedora 31默认修改为使用CgroupsV2。&amp;lt;ref&amp;gt;{{Cite web|title=1732114 – Modify Fedora 31 to use CgroupsV2 by default|url=https://bugzilla.redhat.com/show_bug.cgi?id=1732114|website=bugzilla.redhat.com|access-date=2024-02-29}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==参见==&lt;br /&gt;
* [[操作系统层虚拟化#实现|实现了操作系统级虚拟化的项目列表]]&lt;br /&gt;
* [[进程组]]&lt;br /&gt;
* {{Ilh/en|Tc (Linux)|Tc (Linux)}}&lt;br /&gt;
* [[工作对象]] - [[Windows]]平台的等效概念，由该平台的[[Windows对象管理|对象管理器]]管理。&lt;br /&gt;
&lt;br /&gt;
==引用==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
* [https://web.archive.org/web/20120618145303/http://www.kernel.org/doc/Documentation/cgroups/ Linux kernel documentation on cgroups]&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux内核功能]]&lt;br /&gt;
[[Category:操作系统技术]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Cewbot</name></author>
	</entry>
</feed>