Grup de control (Linux)

Grup de control ( în engleză  control group , cgroups [1] , cgroup [2] ) - un grup de procese în Linux , pentru care izolarea este impusă de mecanismele nucleului și sunt puse restricții asupra unor resurse de calcul (procesor, rețea, resurse de memorie, I / O resurse) . Mecanismul face posibilă formarea de grupuri ierarhice de procese cu proprietăți de resurse specificate și oferă control programatic asupra acestora.

Istorie

Dezvoltarea a fost începută de inginerii Google Paul Menage și Rohit Seth în 2006 și a fost inițial numit containere de proces [3 ] .  În 2007, proiectul a fost redenumit în cgroups (din engleză control groups ) din cauza ambiguității semnificației termenului „container” în kernel-ul Linux.  

De la versiunea 2.6.24 a nucleului Linux, tehnologia a fost inclusă în versiunile oficiale ale nucleului [4] . De atunci, dezvoltarea a crescut semnificativ, la mecanism au fost adăugate multe caracteristici suplimentare, mecanismul este utilizat în mod semnificativ în tehnologia de inițializare systemd și este, de asemenea, un element cheie în implementarea sistemului de virtualizare la nivelul sistemului de operare LXC .

Caracteristici

Unul dintre obiectivele mecanismului este de a oferi o singură interfață de programare pentru o întreagă gamă de instrumente de gestionare a proceselor, de la controlul unui singur proces (cum ar fi utilitarul frumos ) până la virtualizarea completă la nivel de sistem (cum ar fi OpenVZ , Linux-VServer , LXC ). Mecanismul oferă următoarele caracteristici:

Utilizare

Grup de control ( cgroup ) - ansamblu de procese unite după unele caracteristici, gruparea putând fi ierarhică cu moștenirea restricțiilor și parametrilor grupului părinte. Nucleul Linux oferă acces la multe așa-numite controlere (subsisteme) prin interfața cgroup [4] , de exemplu, controlerul „memorie” limitează utilizarea RAM, controlerul „cpuacct” ia în considerare utilizarea timpului procesorului.

Grupurile de control pot fi gestionate în diferite moduri:

O descriere a instalării și utilizării mecanismului este inclusă în documentația kernel-ului Linux.

Note

  1. Reducerea este valabilă pentru versiunea 1
  2. Reducerea este valabilă pentru versiunea 2
  3. Jonathan Corbet . Process containers , LWN.net (29 mai 2007). Arhivat din original pe 12 iunie 2017. Preluat la 29 decembrie 2012.
  4. 1 2 3 Jonathan Corbet . Note dintr-un container , LWN.net (29 octombrie 2007). Arhivat din original pe 22 iunie 2012. Preluat la 29 decembrie 2012.
  5. Jonathan Corbet . Controlul utilizării memoriei în containere , LWN (31 iulie 2007). Arhivat din original pe 29 ianuarie 2018. Preluat la 29 decembrie 2012.
  6. Jonathan Corbet . Spațiu kernel: programare corectă a utilizatorilor pentru Linux , Network World (23 octombrie 2007). Arhivat din original pe 19 octombrie 2013. Preluat la 22 august 2012.
  7. Kamkamezawa Hiroyu (19.11.2008). Cgroup și controler de resurse de memorie (PDF) . Simpozionul Japoniei Linux. Arhivat din original (diapozitive de prezentare PDF) pe 22-07-2011 . Accesat 2012-12-29 . Arhivat pe 22 iulie 2011 la Wayback Machine
  8. 1 2 Dave Hansen. Managementul resurselor (PDF) . Fundația Linux. Arhivat din original (diapozitive de prezentare PDF) pe 2011-10-09 . Accesat 2012-12-29 . Parametrul depreciat folosit |deadlink=( ajutor )
  9. Matt Helsley . LXC: Linux container tools , IBM developerWorks (3 februarie 2009). Arhivat din original pe 29 octombrie 2012. Preluat la 29 decembrie 2012.
  10. Grid Engine cgroups Integration (link downlink) . Logica scalabilă (22 mai 2012). Arhivat din original pe 26 ianuarie 2013. 

Link -uri