Kontrollgrupp (Linux)

Kontrollgrupp ( engelska  kontrollgrupp , cgroups [1] , cgroup [2] ) - en grupp processer i Linux , för vilka isolering åläggs av kärnmekanismer och begränsningar läggs på vissa datorresurser (processor, nätverk, minnesresurser, I / O resurser). Mekanismen gör det möjligt att bilda hierarkiska grupper av processer med specificerade resursegenskaper och ger programmatisk kontroll över dem.

Historik

Utvecklingen startades av Googles ingenjörer Paul Menage och Rohit Seth 2006 och kallades ursprungligen processcontainrar [3 ] .  2007 döptes projektet om till cgroups (från engelska kontrollgrupper ) på grund av oklarheten i betydelsen av termen "behållare" i Linux-kärnan.  

Sedan version 2.6.24 av Linux-kärnan har tekniken inkluderats i de officiella versionerna av kärnan [4] . Sedan dess har utvecklingen ökat avsevärt, många ytterligare funktioner har lagts till mekanismen, mekanismen används avsevärt i systemd initieringsteknik och är också ett nyckelelement i implementeringen av virtualiseringssystemet på LXC- operativsystemnivå .

Funktioner

Ett av målen med mekanismen är att tillhandahålla ett enda programmeringsgränssnitt till en hel rad processhanteringsverktyg, från en enda processkontroll (som det trevliga verktyget ) till full virtualisering på systemnivå (som OpenVZ , Linux-VServer , LXC ). Mekanismen har följande funktioner:

Användning

Kontrollgrupp ( cgroup ) - en uppsättning processer förenade enligt vissa egenskaper, grupperingen kan vara hierarkisk med arvet av begränsningar och parametrar för den överordnade gruppen. Linuxkärnan ger tillgång till många så kallade kontroller (undersystem) genom gränssnittet cgroup [4] , till exempel begränsar "minnes"-kontrollern användningen av RAM, "cpuacct"-kontrollern tar hänsyn till användningen av processortid.

Kontrollgrupper kan hanteras på olika sätt:

En beskrivning av installationen och användningen av mekanismen ingår i Linux-kärnans dokumentation.

Anteckningar

  1. Reduktionen gäller för version 1
  2. Reduktionen gäller för version 2
  3. Jonathan Corbet . Processcontainrar , LWN.net (29 maj 2007). Arkiverad från originalet den 12 juni 2017. Hämtad 29 december 2012.
  4. 1 2 3 Jonathan Corbet . Anteckningar från en behållare , LWN.net (29 oktober 2007). Arkiverad från originalet den 22 juni 2012. Hämtad 29 december 2012.
  5. Jonathan Corbet . Kontroll av minnesanvändning i behållare , LWN (31 juli 2007). Arkiverad från originalet den 29 januari 2018. Hämtad 29 december 2012.
  6. Jonathan Corbet . Kärnutrymme: Rättvis användarschemaläggning för Linux , Network World (23 oktober 2007). Arkiverad från originalet den 19 oktober 2013. Hämtad 22 augusti 2012.
  7. Kamkamezawa Hiroyu (2008-11-19). Cgroup and Memory Resource Controller (PDF) . Japan Linux Symposium. Arkiverad från originalet (PDF-presentationsbilder) 2011-07-22 . Hämtad 2012-12-29 . Arkiverad 22 juli 2011 på Wayback Machine
  8. 1 2 Dave Hansen. Resurshantering (PDF) . Linux Foundation. Arkiverad från originalet (PDF-presentationsbilder) 2011-10-09 . Hämtad 2012-12-29 . Utfasad parameter används |deadlink=( hjälp )
  9. Matt Helsley . LXC: Linux-containerverktyg , IBM developerWorks (3 februari 2009). Arkiverad från originalet den 29 oktober 2012. Hämtad 29 december 2012.
  10. Grid Engine cgroups Integration (nedlänk) . Skalbar logik (22 maj 2012). Arkiverad från originalet den 26 januari 2013. 

Länkar