Vezérlőcsoport (Linux)
Vezérlőcsoport ( angolul control group , cgroups [1] , cgroup [2] ) - Linuxban futó folyamatok csoportja , amelyekre kernel mechanizmusok szabják meg az elkülönítést, és bizonyos számítási erőforrásokat korlátoznak (processzor, hálózat, memória erőforrások, I. / O források) . A mechanizmus lehetővé teszi a folyamatok hierarchikus csoportjainak kialakítását meghatározott erőforrás-tulajdonságokkal, és programozott vezérlést biztosít ezek felett.
Történelem
A fejlesztést a Google mérnökei, Paul Menage és Rohit Seth kezdték 2006 -ban , és eredetileg folyamattárolóknak [3 ] nevezték . 2007-ben a projektet átnevezték cgroups-ra (az angol vezérlőcsoportokból ), mivel a "container" kifejezés nem egyértelmű a Linux kernelben.
A Linux kernel 2.6.24-es verziója óta a technológia bekerült a kernel hivatalos verzióiba [4] . Azóta a fejlesztés jelentősen bővült, számos további funkcióval bővült a mechanizmus, a mechanizmust jelentős mértékben használják a systemd inicializálási technológiában , valamint kulcsfontosságú eleme a virtualizációs rendszer LXC operációs rendszer szintű megvalósításának .
Jellemzők
A mechanizmus egyik célja, hogy egyetlen programozási felületet biztosítson a folyamatkezelési eszközök egész sorához, az egyetlen folyamatvezérléstől (például a szép segédprogram ) a teljes rendszerszintű virtualizációig (például OpenVZ , Linux-VServer , LXC ). A mechanizmus a következő tulajdonságokkal rendelkezik:
- erőforrás - korlátozás : memóriahasználat , beleértve a virtuális [5] ;
- prioritás: a különböző csoportokhoz különböző mennyiségű processzorerőforrást [6] és az input-output alrendszer áteresztőképességét [7] lehet lefoglalni ;
- számvitel: bizonyos erőforrások költségeinek csoportonkénti kiszámítása [8] ;
- elkülönítés: a csoportok névtereinek szétválasztása oly módon, hogy egy másik csoport folyamatai, hálózati kapcsolatai és fájljai elérhetetlenek legyenek [4] ;
- kezelés: csoportok felfüggesztése ( lefagyasztása ), ellenőrzőpontok létrehozása ( checkpointing ) és újratöltésük [8] .
Használat
Kontrollcsoport ( cgroup ) - bizonyos jellemzők szerint egyesített folyamatok halmaza, a csoportosítás lehet hierarchikus a szülőcsoport korlátozásainak és paramétereinek öröklésével. A Linux kernel számos úgynevezett vezérlőhöz (alrendszerhez) biztosít hozzáférést a cgroup [4] interfészen keresztül , például a "memory" vezérlő korlátozza a RAM használatát, a "cpuacct" vezérlő a processzoridő felhasználását veszi figyelembe.
A vezérlőcsoportok többféleképpen kezelhetők:
- a cgroup virtuális fájlrendszerhez (például /proc ) való közvetlen hozzáférésen keresztül;
- segédprogramok cgcreate , cgexec , cgclassify (a libcgroupból);
- a szabályok motor démon használatával , amely bizonyos felhasználók, csoportok vagy parancsok folyamatait automatikusan áthelyezi a cgroups-okba a konfigurációnak megfelelően;
- közvetve más, cgroupokat használó szoftvereken keresztül, például az LXC [9] és a Docker konténerrendszereken, a libvirt könyvtáron , a systemd init technológián és a Grid Engine [10] fürtkezelő szoftveren keresztül .
A mechanizmus telepítésének és használatának leírását a Linux kernel dokumentációja tartalmazza.
Jegyzetek
- ↑ A kedvezmény az 1-es verzióra érvényes
- ↑ A kedvezmény a 2-es verzióra érvényes
- ↑ Jonathan Corbet . Folyamattárolók , LWN.net (2007. május 29.). Archiválva az eredetiből 2017. június 12-én. Letöltve: 2012. december 29.
- ↑ 1 2 3 Jonathan Corbet . Jegyzetek egy tárolóból , LWN.net (2007. október 29.). Archiválva az eredetiből 2012. június 22-én. Letöltve: 2012. december 29.
- ↑ Jonathan Corbet . Memóriahasználat szabályozása tárolókban , LWN (2007. július 31.). Az eredetiből archiválva : 2018. január 29. Letöltve: 2012. december 29.
- ↑ Jonathan Corbet . Kernelterület: Tisztességes felhasználói ütemezés Linuxhoz , Network World (2007. október 23.). Az eredetiből archiválva : 2013. október 19. Letöltve: 2012. augusztus 22.
- ↑ Kamkamezawa Hiroyu (2008.11.19.). Cgroup és memória erőforrás-vezérlő (PDF) . Japán Linux szimpózium. Archiválva az eredetiből (PDF bemutató diák) , ekkor: 2011-07-22 . Letöltve 2012-12-29 . Archiválva : 2011. július 22. a Wayback Machine -nél
- ↑ 1 2 Dave Hansen. Erőforrás-kezelés (PDF) . Linux Alapítvány. Archivált az eredetiből (PDF bemutató diák) , ekkor: 2011-10-09 . Letöltve 2012-12-29 .
- ↑ Matt Helsley . LXC: Linux konténereszközök , IBM developerWorks (2009. február 3.). Az eredetiből archiválva : 2012. október 29. Letöltve: 2012. december 29.
- ↑ Grid Engine cgroups Integration (downlink) . Scalable Logic (2012. május 22.). Archiválva az eredetiből 2013. január 26-án. (határozatlan)
Linkek