Cgroups

cgroups (grupuri de control) este o caracteristică a kernel-ului Linux pentru a limita, număra și izola utilizarea resurselor ( procesor , memorie , utilizarea discului etc.).

Această lucrare a fost inițiată de inginerii Google (mai întâi Paul Menage și Rohit Seth) în 2006 sub numele de „container de proces”; la sfârșitul anului 2007, a fost redenumit Grupuri de control (din cauza confuziei cauzate de diferitele semnificații ale termenului „container” din nucleul Linux) și inclus în versiunea 2.6.24 a nucleului Linux. De atunci, au fost adăugate multe funcții și controlere noi.

Caracteristici

Unul dintre obiectivele de proiectare ale cgroup-urilor a fost să ofere o interfață unificată pentru diferite cazuri de utilizare, variind de la controlul proceselor simple (cum ar fi frumos ) până la virtualizare la nivelul sistemului de operare (cum ar fi OpenVZ , Linux -VServer , LXC ). Cgroups oferă:

utilizare

Un grup de control este o serie de procese care sunt legate de aceleași criterii. Aceste grupuri pot fi organizate ierarhic, astfel încât fiecare grup să moștenească limitele grupului său părinte. Nucleul oferă acces la mai multe controlere (subsisteme) prin interfața cgroup. De exemplu, controlerul „memorie” limitează utilizarea memoriei, „cpuacct” numără utilizarea procesorului și așa mai departe.

Grupurile de control pot fi utilizate în mai multe moduri:

Documentația kernel-ului Linux conține multe detalii despre instalarea și utilizarea cgroup-urilor.

Izolarea spațiului de nume

Deși nu face parte din punct de vedere tehnic al activității grupurilor de grupuri, o caracteristică asociată este izolarea spațiului de nume , în care seturile de procese sunt separate astfel încât să nu poată „vedea” resursele altora. De exemplu, un spațiu de nume identificator de proces (PID) oferă un set separat de identificatori de proces în fiecare spațiu de nume. De asemenea, sunt disponibile spații de nume pe montură, UTS, rețea și SysV IPC. Foarte devreme în dezvoltarea cgroupurilor, subsistemul "ns" a fost adăugat, pentru a integra spații de nume și cgroupuri. Dacă grupul c "ns" ar fi fost montat, fiecare spațiu de nume ar fi trebuit, de asemenea, să creeze un grup nou în ierarhia grupului de denumire. Aceasta a fost o încercare care ulterior a fost considerată nepotrivită pentru API-ul cgroups și eliminată din nucleu.

Spațiile de nume sunt create cu comanda „unshare” sau un apel de sistem sau ca markeri noi într-un apel de sistem „clonează”.

Referințe

  1. (în) Jonathan Corbet, „  Containere de procesare  ” , LWN.net,29 mai 2007
  2. (ro) Jonathan Corbet, „  Note dintr-un container  ” , LWN.net,29 octombrie 2007
  3. (în) Jonathan Corbet, „  Controlul utilizării memoriei în containere  ” , LWN, 31 iulie. 31 iulie 2007
  4. [PDF] (în) Balbir Singh și Vaidynathan Srinivasan, "  Containere: provocări cu controlerul resurselor de memorie și performanța sa  " , Simpozionul Ottawa Linux ,Iulie 2007
  5. (în) Jonathan Corbet, „  Kernel space: Programare echitabilă a utilizatorilor pentru Linux  ” , Network World,23 octombrie 2007(accesat la 22 august 2012 )
  6. (în) Kamkamezawa Hiroyu (19 noiembrie 2008). „  Cgroup and Memory Resource Controller  ” (diapozitive de prezentare PDF), Simpozion Japonia Linux. 
  7. (în) Dave Hansen. „  Managementul resurselor  ” (diapozitive de prezentare PDF), Linux Foundation. 
  8. Cyril Zarak, „  Utilizarea cgroups v1  ” ,4 ianuarie 2020
  9. (în) Matt Helsley, „  LXC: Linux container tools  ” , IBM developerWorks, 3 fe. 2009
  10. (în) "  Integrarea grupurilor de motoare cu rețea  " , Logică scalabilă22 mai 2012
  11. http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
  12. (în) Pavel Emelyanov, Kir Kolyshkin, "  PID namespaces in the 2.6.24 kernel  " , LWN.net,19 noiembrie 2007
  13. (în) Jonathan Corbet, „  Spații de nume de rețea  ” , LWN.net,30 ianuarie 2007
  14. (în) Serge E. Hallyn Ram Pai, „  Aplicarea spațiilor de nume pentru montare  ” , IBM developerWorks,17 septembrie 2007
  15. (în) Janak Desai, „  Documentația kernel-ului Linux este unshare  ” ,11 ianuarie 2006

Anexe

Articole similare

Link extern