Grupper

cgroups (kontrolgrupper) er en funktion i Linux-kernen til at begrænse, tælle og isolere ressourceforbrug ( processor , hukommelse , diskbrug osv.).

Dette arbejde blev påbegyndt af Google- ingeniører (først Paul Menage og Rohit Seth) i 2006 under navnet "procescontainer"; i slutningen af ​​2007 blev det omdøbt til kontrolgrupper (på grund af forvirring forårsaget af de forskellige betydninger af udtrykket "container" i Linux-kernen) og inkluderet i version 2.6.24 af Linux-kernen. Siden da er der tilføjet mange nye funktioner og controllere.

Funktioner

Et af designmålene for cgroups har været at give en samlet grænseflade til forskellige brugssager, lige fra at kontrollere enkle processer (som nice ) til virtualisering på operativsystemniveau (som OpenVZ , Linux -VServer , LXC ). Cgroups giver:

brug

En kontrolgruppe er en række processer, der er forbundet med de samme kriterier. Disse grupper kan organiseres hierarkisk, så hver gruppe arver grænserne for sin overordnede gruppe. Kernen giver adgang til flere controllere (undersystemer) via cgroup-interface. For eksempel begrænser “hukommelses” -controlleren hukommelsesforbrug, “cpuacct” tæller CPU-forbrug og så videre.

Kontrolgrupper kan bruges på flere måder:

Linux-kernedokumentationen indeholder mange detaljer om installation og brug af cgroups.

Navnepladsisolering

Selvom det ikke er teknisk en del af cgroups arbejde, er en relateret funktion isolering af navneområdet , hvor sæt af processer adskilles på en sådan måde, at de ikke kan "se" andres gruppers ressourcer. For eksempel tilvejebringer et procesidentifikator (PID) navneområde et separat sæt procesidentifikatorer i hvert navneområde. Der findes også navneområder pr. Mount, UTS, netværk og SysV IPC. Meget tidligt i udviklingen af ​​cgroups blev subsystemet "ns" tilføjet for at integrere navneområder og cgroups. Hvis "ns" -gruppen var blevet monteret, ville hvert navneområde også have været nødt til at oprette en ny gruppe i navngivningsgruppehierarkiet. Dette var et forsøg, der senere blev anset for uegnet til cgroups API og fjernet fra kernen.

Navneområder oprettes med kommandoen "unshare" eller et systemopkald eller som nye markører i et "klon" -systemopkald.

Referencer

  1. (in) Jonathan Corbet, "  Process containere  " , LWN.net,29. maj 2007
  2. (en) Jonathan Corbet, "  Noter fra en container  " , LWN.net,29. oktober 2007
  3. (i) Jonathan Corbet, "  Controlling hukommelse brug i containere  " , LWN, 31. juli 31 juli 2007
  4. [PDF] (i) Balbir Singh og Vaidynathan Srinivasan, "  Beholdere: Udfordringer med hukommelsen ressource controller og dens resultater  " , Ottawa Linux Symposium ,Juli 2007
  5. (i) Jonathan Corbet, "  Kernel plads: Fair bruger planlægning til Linux  " , Network World,23. oktober 2007(adgang til 22. august 2012 )
  6. (i) Kamkamezawa Hiroyu (19 i november 2008). “  Cgroup and Memory Resource Controller  ” (PDF-præsentationsglas), Japan Linux Symposium. 
  7. (in) Dave Hansen. “  Resource Management  ” (PDF-præsentationsglas), Linux Foundation. 
  8. Cyril Zarak, "  Brug af cgroups v1  " ,4. januar 2020
  9. (in) Matt Helsley, "  LXC: Linux container tools  " , IBM developerWorks, 3 fe. 2009
  10. (in) "  Grid Engine cgroups Integration  " , skalerbar logik22. maj 2012
  11. http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
  12. (in) Pavel Emelyanov, Kir Kolyshkin, "  PID-navneområder i 2.6.24-kernen  " , LWN.net,19. november 2007
  13. (i) Jonathan Corbet, "  Navneområder i netværk  " , LWN.net,30. januar 2007
  14. (i) Serge E. Hallyn Ram Pai, "  Anvendelse mount navnerum  " , IBM developerWorks,17. september 2007
  15. (i) Janak Desai, "  Linux-kernen dokumentation er stoppe deling  " ,11. januar 2006

Tillæg

Relaterede artikler

Eksternt link