cgroups (англ. control groups) — механізм ядра Linux, який обмежує і ізолює обчислювальні ресурси (процесорні, мережні, ресурси пам'яті, ресурси вводу-виводу) для груп процесів. Механізм дозволяє утворювати ієрархічні групи процесів із заданими ресурсними властивостями і забезпечує програмне керування ними.
Історія
Розробка була розпочата інженерами Google Полом Менеджем (Paul Menage) і Рохітом Сетом (Rohit Seth) в 2006 році і спочатку називалася «контейнери процесів» (англ. process containers). У 2007 році проект був перейменований в cgroups (від англ. control groups) з причини неоднозначності значення терміну «контейнер» в ядрі Linux.
Починаючи з версії 2.6.24 ядра Linux технологія включена в офіційні версії ядра. З цього моменту розробка значно активізувалася, в механізм додано багато додаткових можливостей, механізм істотно використовується в технології ініціалізації systemd, а також є ключовим елементом у реалізації системи віртуалізації на рівні операційної системи LXC.
Можливості
Одна з цілей механізму cgroups — надати єдиний програмний інтерфейс до цілого спектру засобів управління процесами, починаючи з контролю одиничного процесу (таких як, наприклад, утиліта nice) аж до повної віртуалізації на рівні системи (як у OpenVZ, , LXC).
Механізм надає такі можливості:
- обмеження ресурсів (англ. resource limiting): використання пам'яті, в тому числі віртуальної
- пріоритезацію: різним групам можна виділити різну кількість процесорного ресурсу та пропускної спроможності підсистеми вводу-виводу
- облік: підрахунок витрат тих чи інших ресурсів групою
- ізоляцію: поділ просторів імен для груп таким чином, що одній групі недоступні процеси, мережні з'єднання і файли іншої
- управління: призупинення (англ. freezing) груп, створення контрольних точок (англ. checkpointing) та їхнє перезавантаження
Використання
Контрольна група (cgroup) — набір процесів, об'єднаних за деякими ознаками, угруповання може бути ієрархічним з успадкуванням обмежень і параметрів батьківського групи. Ядро Linux надає доступ до множини так званих контролерів (підсистем) через інтерфейс cgroup, наприклад, контролер «memory» обмежує використання оперативної пам'яті, контролер «cpuacct» враховує використання процесорного часу.
Керування в cgroups можливе різними способами:
- через доступ до віртуальної файлової системи cgroup (по типу /proc) безпосередньо;
- утилітами cgcreate, cgexec, cgclassify (з libcgroup);
- використовуючи демон механізму правил (англ. rules engine daemon), який автоматично переміщує процеси певних користувачів, груп або команд в cgroups згідно конфігурації;
- побічно через інші програмні засоби, що використовують cgroups, наприклад, через систему віртуалізації LXC, бібліотеку libvirt, технологію ініціалізації systemd, кластерне управляюче програмне забезпечення .
Опис установки і використання механізму включено в документацію ядра Linux.
Виноски
- Jonathan Corbet (29 травня 2007). . LWN.net. Архів оригіналу за 12 червня 2017. Процитовано 8 червня 2014.
- Jonathan Corbet (29 жовтня 2007). . LWN.net. Архів оригіналу за 22 червня 2012. Процитовано 8 червня 2014.
- Jonathan Corbet (31 липня 2007). . LWN. Архів оригіналу за 29 січня 2018. Процитовано 8 червня 2014.
- Jonathan Corbet (23 жовтня 2007). . Network World. Архів оригіналу за 19 жовтня 2013. Процитовано 22 серпня 2012.
- Kamkamezawa Hiroyu (19 листопада 2008). (PDF). Japan Linux Symposium. Архів оригіналу (PDF presentation slides) за 22 липня 2011. Процитовано 8 червня 2014.
- Dave Hansen. (PDF). Linux Foundation. Архів оригіналу (PDF presentation slides) за 9 жовтня 2011. Процитовано 8 червня 2014.
- Matt Helsley (3 лютого 2009). . IBM developerWorks. Архів оригіналу за 29 жовтня 2012. Процитовано 8 червня 2014.
- Grid Engine cgroups Integration. Scalable Logic. 05-22-2012. Архів оригіналу за 26 січня 2013. Процитовано 8 червня 2014.
- , kernel.org, архів оригіналу за 6 вересня 2012, процитовано 8 червня 2014
Посилання
- Linux kernel documentation on cgroups [ 7 листопада 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
cgroups angl control groups mehanizm yadra Linux yakij obmezhuye i izolyuye obchislyuvalni resursi procesorni merezhni resursi pam yati resursi vvodu vivodu dlya grup procesiv Mehanizm dozvolyaye utvoryuvati iyerarhichni grupi procesiv iz zadanimi resursnimi vlastivostyami i zabezpechuye programne keruvannya nimi IstoriyaRozrobka bula rozpochata inzhenerami Google Polom Menedzhem Paul Menage i Rohitom Setom Rohit Seth v 2006 roci i spochatku nazivalasya kontejneri procesiv angl process containers U 2007 roci proekt buv perejmenovanij v cgroups vid angl control groups z prichini neodnoznachnosti znachennya terminu kontejner v yadri Linux Pochinayuchi z versiyi 2 6 24 yadra Linux tehnologiya vklyuchena v oficijni versiyi yadra Z cogo momentu rozrobka znachno aktivizuvalasya v mehanizm dodano bagato dodatkovih mozhlivostej mehanizm istotno vikoristovuyetsya v tehnologiyi inicializaciyi systemd a takozh ye klyuchovim elementom u realizaciyi sistemi virtualizaciyi na rivni operacijnoyi sistemi LXC MozhlivostiOdna z cilej mehanizmu cgroups nadati yedinij programnij interfejs do cilogo spektru zasobiv upravlinnya procesami pochinayuchi z kontrolyu odinichnogo procesu takih yak napriklad utilita nice azh do povnoyi virtualizaciyi na rivni sistemi yak u OpenVZ LXC Mehanizm nadaye taki mozhlivosti obmezhennya resursiv angl resource limiting vikoristannya pam yati v tomu chisli virtualnoyi prioritezaciyu riznim grupam mozhna vidiliti riznu kilkist procesornogo resursu ta propusknoyi spromozhnosti pidsistemi vvodu vivodu oblik pidrahunok vitrat tih chi inshih resursiv grupoyu izolyaciyu podil prostoriv imen dlya grup takim chinom sho odnij grupi nedostupni procesi merezhni z yednannya i fajli inshoyi upravlinnya prizupinennya angl freezing grup stvorennya kontrolnih tochok angl checkpointing ta yihnye perezavantazhennyaVikoristannyaKontrolna grupa cgroup nabir procesiv ob yednanih za deyakimi oznakami ugrupovannya mozhe buti iyerarhichnim z uspadkuvannyam obmezhen i parametriv batkivskogo grupi Yadro Linux nadaye dostup do mnozhini tak zvanih kontroleriv pidsistem cherez interfejs cgroup napriklad kontroler memory obmezhuye vikoristannya operativnoyi pam yati kontroler cpuacct vrahovuye vikoristannya procesornogo chasu Keruvannya v cgroups mozhlive riznimi sposobami cherez dostup do virtualnoyi fajlovoyi sistemi cgroup po tipu proc bezposeredno utilitami cgcreate cgexec cgclassify z libcgroup vikoristovuyuchi demon mehanizmu pravil angl rules engine daemon yakij avtomatichno peremishuye procesi pevnih koristuvachiv grup abo komand v cgroups zgidno konfiguraciyi pobichno cherez inshi programni zasobi sho vikoristovuyut cgroups napriklad cherez sistemu virtualizaciyi LXC biblioteku libvirt tehnologiyu inicializaciyi systemd klasterne upravlyayuche programne zabezpechennya Opis ustanovki i vikoristannya mehanizmu vklyucheno v dokumentaciyu yadra Linux VinoskiJonathan Corbet 29 travnya 2007 LWN net Arhiv originalu za 12 chervnya 2017 Procitovano 8 chervnya 2014 Jonathan Corbet 29 zhovtnya 2007 LWN net Arhiv originalu za 22 chervnya 2012 Procitovano 8 chervnya 2014 Jonathan Corbet 31 lipnya 2007 LWN Arhiv originalu za 29 sichnya 2018 Procitovano 8 chervnya 2014 Jonathan Corbet 23 zhovtnya 2007 Network World Arhiv originalu za 19 zhovtnya 2013 Procitovano 22 serpnya 2012 Kamkamezawa Hiroyu 19 listopada 2008 PDF Japan Linux Symposium Arhiv originalu PDF presentation slides za 22 lipnya 2011 Procitovano 8 chervnya 2014 Dave Hansen PDF Linux Foundation Arhiv originalu PDF presentation slides za 9 zhovtnya 2011 Procitovano 8 chervnya 2014 Matt Helsley 3 lyutogo 2009 IBM developerWorks Arhiv originalu za 29 zhovtnya 2012 Procitovano 8 chervnya 2014 Grid Engine cgroups Integration Scalable Logic 05 22 2012 Arhiv originalu za 26 sichnya 2013 Procitovano 8 chervnya 2014 kernel org arhiv originalu za 6 veresnya 2012 procitovano 8 chervnya 2014PosilannyaLinux kernel documentation on cgroups 7 listopada 2018 u Wayback Machine