Kontrolgruppe (Linux)

Kontrolgruppe ( engelsk  kontrolgruppe , cgroups [1] , cgroup [2] ) - en gruppe af processer i Linux , for hvilken isolering pålægges af kernemekanismer og begrænsninger er placeret på nogle computerressourcer (processor, netværk, hukommelsesressourcer, I / O ressourcer). Mekanismen gør det muligt at danne hierarkiske grupper af processer med specificerede ressourceegenskaber og giver programmatisk kontrol over dem.

Historie

Udviklingen blev startet af Googles ingeniører Paul Menage og Rohit Seth i 2006 og blev oprindeligt kaldt procescontainere [3 ] .  I 2007 blev projektet omdøbt til cgroups (fra engelske kontrolgrupper ) på grund af tvetydigheden af ​​betydningen af ​​udtrykket "container" i Linux-kernen.  

Siden version 2.6.24 af Linux-kernen har teknologien været inkluderet i de officielle versioner af kernen [4] . Siden da er udviklingen steget markant, mange ekstra funktioner er blevet tilføjet til mekanismen, mekanismen er væsentligt brugt i systemd initialiseringsteknologien og er også et nøgleelement i implementeringen af ​​virtualiseringssystemet på LXC -operativsystemniveau .

Funktioner

Et af målene med mekanismen er at levere en enkelt programmeringsgrænseflade til en lang række processtyringsværktøjer, fra enkelt processtyring (såsom det gode hjælpeprogram ) til fuld virtualisering på systemniveau (som OpenVZ , Linux-VServer , LXC ). Mekanismen har følgende funktioner:

Brug

Kontrolgruppe ( cgroup ) - et sæt processer forenet i henhold til nogle karakteristika, grupperingen kan være hierarkisk med arven af ​​restriktioner og parametre for den overordnede gruppe. Linux-kernen giver adgang til mange såkaldte controllere (undersystemer) gennem cgroup [4] -grænsefladen , f.eks. begrænser "memory"-controlleren brugen af ​​RAM, "cpuacct"-controlleren tager højde for brugen af ​​processortid.

Kontrolgrupper kan styres på forskellige måder:

En beskrivelse af installationen og brugen af ​​mekanismen er inkluderet i Linux-kernedokumentationen.

Noter

  1. Reduktionen gælder for version 1
  2. Reduktionen gælder for version 2
  3. Jonathan Corbet . Procesbeholdere , LWN.net (29. maj 2007). Arkiveret fra originalen den 12. juni 2017. Hentet 29. december 2012.
  4. 1 2 3 Jonathan Corbet . Noter fra en container , LWN.net (29. oktober 2007). Arkiveret fra originalen den 22. juni 2012. Hentet 29. december 2012.
  5. Jonathan Corbet . Kontrol af hukommelsesbrug i containere , LWN (31. juli 2007). Arkiveret fra originalen den 29. januar 2018. Hentet 29. december 2012.
  6. Jonathan Corbet . Kernel space: Fair brugerplanlægning for Linux , Network World (23. oktober 2007). Arkiveret fra originalen den 19. oktober 2013. Hentet 22. august 2012.
  7. Kamkamezawa Hiroyu (2008-11-19). Cgroup and Memory Resource Controller (PDF) . Japan Linux Symposium. Arkiveret fra originalen (PDF-præsentationsdias) 2011-07-22 . Hentet 2012-12-29 . Arkiveret 22. juli 2011 på Wayback Machine
  8. 1 2 Dave Hansen. Ressourcestyring (PDF) . Linux Foundation. Arkiveret fra originalen (PDF-præsentationsdias) 2011-10-09 . Hentet 2012-12-29 . Forældet parameter brugt |deadlink=( hjælp )
  9. Matt Helsley . LXC: Linux-containerværktøjer , IBM developerWorks (3. februar 2009). Arkiveret fra originalen den 29. oktober 2012. Hentet 29. december 2012.
  10. Grid Engine cgroups Integration (downlink) . Skalerbar logik (22. maj 2012). Arkiveret fra originalen den 26. januar 2013. 

Links