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 (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]: § Controllers  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 controllers for the kernel's own memory allocation,[4] netfilter firewalling,[5], the OOM killer,[6] and many other parts.

A major change in the history of cgroups is cgroup v2, which removes the ability to use multiple process hierarchies and to discriminate between threads as found in the original cgroup (now called "v1").[1]: § Issues with v1 and Rationales for v2  Work on the single, unified hierarchy started with the repurposing of v1's dummy hierarchy as a place for holding all controllers not yet used by others in 2014.[7] cgroup v2 was merged in Linux kernel 4.5 (2016).[8]

  1. ^ a b Cite error: The named reference v2doc was invoked but never defined (see the help page).
  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. ^ Cite error: The named reference kmemcg was invoked but never defined (see the help page).
  5. ^ "netfilter: x_tables: lightweight process control group matching". 23 April 2014. Archived from the original on 24 April 2014.
  6. ^ Cite error: The named reference oom was invoked but never defined (see the help page).
  7. ^ "cgroup: prepare for the default unified hierarchy". 13 March 2014.
  8. ^ Cite error: The named reference v2-doc-4.5 was invoked but never defined (see the help page).

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search