Cgroups

cgroups
Original author(s)v1: Paul Menage, Rohit Seth, Memory Controller by Balbir Singh, CPU controller by Srivatsa Vaddagiri
v2: Tejun Heo
Developer(s)Tejun Heo, Johannes Weiner, Michal Hocko, Waiman Long, Roman Gushchin, Chris Down et al.
Initial release2007; 17 years ago (2007)
Written inC
Operating systemLinux
TypeSystem software
LicenseGPL and LGPL
WebsiteCgroup v1, Cgroup v2

cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for, and isolates the resource usage (CPU, memory, disk I/O, etc.[1]) of a collection of processes.

Engineers at Google started the work on this feature in 2006 under the name "process containers".[2] In late 2007, the nomenclature changed to "control groups" to avoid confusion caused by multiple meanings of the term "container" in the Linux kernel context, and the control groups functionality was merged into the Linux kernel mainline in kernel version 2.6.24, which was released in January 2008.[3] Since then, developers have added many new features and controllers, such as support for kernfs in 2014,[4] firewalling,[5] and unified hierarchy.[6] cgroup v2 was merged in Linux kernel 4.5[7] with significant changes to the interface and internal functionality.[8]

  1. ^ "Control Group v2 — The Linux Kernel documentation". www.kernel.org. Retrieved 24 June 2023.
  2. ^ Jonathan Corbet (29 May 2007). "Process containers". LWN.net.
  3. ^ Jonathan Corbet (29 October 2007). "Notes from a container". LWN.net. Retrieved 14 April 2015. The original 'containers' name was considered to be too generic – this code is an important part of a container solution, but it's far from the whole thing. So containers have now been renamed 'control groups' (or 'cgroups') and merged for 2.6.24.
  4. ^ "cgroup: convert to kernfs". Linux kernel mailing list. 28 January 2014.
  5. ^ "netfilter: x_tables: lightweight process control group matching". 23 April 2014. Archived from the original on 24 April 2014.
  6. ^ "cgroup: prepare for the default unified hierarchy". 13 March 2014.
  7. ^ Cite error: The named reference :0 was invoked but never defined (see the help page).
  8. ^ "cgroup v2: Multiple hierarchies".