Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Контрольная группа (Linux)

Из Википедии — свободной энциклопедии

Унифицированная иерархия на основе контрольных групп и systemd

Контрольная группа (англ. control group, cgroups[1], cgroup[2]) — группа процессов в Linux, для которой механизмами ядра наложена изоляция и установлены ограничения на некоторые вычислительные ресурсы (процессорные, сетевые, ресурсы памяти, ресурсы ввода-вывода). Механизм позволяет образовывать иерархические группы процессов с заданными ресурсными свойствами и обеспечивает программное управление ими.

История

Разработка была начата инженерами Google Полом Менэджем (Paul Menage) и Рохитом Сетом (Rohit Seth) в 2006 году и первоначально называлась «контейнеры процессов» (англ. process containers)[3]. В 2007 году проект был переименован в сgroups (от англ. control groups) по причине неоднозначности значения термина «контейнер» в ядре Linux.

Начиная с версии 2.6.24 ядра Linux технология включена в официальные версии ядра[4]. С этого момента разработка значительно активизировалась, в механизм добавлено много дополнительных возможностей, механизм существенным образом используется в технологии инициализации systemd, а также является ключевым элементом в реализации системы виртуализации на уровне операционной системы LXC.

Возможности

Одна из целей механизма — предоставить единый программный интерфейс к целому спектру средств управления процессами, начиная с контроля единичного процесса (таких как, например, утилита nice) вплоть до полной виртуализации на уровне системы (как у OpenVZ, Linux-VServer[en], LXC). Механизм предоставляет следующие возможности:

  • ограничение ресурсов (англ. resource limiting): использование памяти, в том числе виртуальной[5];
  • приоритизацию: разным группам можно выделить разное количество процессорного ресурса[6] и пропускной способности подсистемы ввода-вывода[7];
  • учёт: подсчёт затрат тех либо иных ресурсов группой[8];
  • изоляцию: разделение пространств имён для групп таким образом, что одной группе недоступны процессы, сетевые соединения и файлы другой[4];
  • управление: приостановку (freezing) групп, создание контрольных точек (checkpointing) и их перезагрузку[8].

Использование

Контрольная группа (cgroup) — набор процессов, объединённых по некоторым признакам, группировка может быть иерархической с наследованием ограничений и параметров родительской группы. Ядро Linux предоставляет доступ ко множеству так называемых контроллеров (подсистем) через интерфейс cgroup[4], например, контроллер «memory» ограничивает использование оперативной памяти, контроллер «cpuacct» учитывает использование процессорного времени.

Управление контрольными группами возможно различными способами:

  • через доступ к виртуальной файловой системе cgroup (по типу /proc) напрямую;
  • утилитами cgcreate, cgexec, cgclassify (из libcgroup);
  • используя демон механизма правил (англ. rules engine daemon), который автоматически перемещает процессы определённых пользователей, групп или команд в cgroups согласно конфигурации;
  • косвенно через другие программные средства, использующие контрольные группы, например, через системы контейнеризации LXC[9] и Docker, библиотеку libvirt, технологию инициализации systemd, кластерное управляющее программное обеспечение Grid Engine[10].

Описание установки и использования механизма включено в документацию ядра Linux.

Примечания

  1. Сокращение справедливо для версии 1
  2. Сокращение справедливо для версии 2
  3. Jonathan Corbet (2007-05-29). "Process containers". LWN.net. Архивировано из оригинала 12 июня 2017. Дата обращения: 29 декабря 2012.
  4. 1 2 3 Jonathan Corbet (2007-10-29). "Notes from a container". LWN.net. Архивировано из оригинала 22 июня 2012. Дата обращения: 29 декабря 2012.
  5. Jonathan Corbet (2007-07-31). "Controlling memory use in containers". LWN. Архивировано из оригинала 29 января 2018. Дата обращения: 29 декабря 2012.
  6. Jonathan Corbet (2007-10-23). "Kernel space: Fair user scheduling for Linux". Network World. Архивировано из оригинала 19 октября 2013. Дата обращения: 22 августа 2012.
  7. Kamkamezawa Hiroyu (2008-11-19). Cgroup and Memory Resource Controller (PDF). Japan Linux Symposium. Архивировано из оригинала (PDF presentation slides) 22 июля 2011. Дата обращения: 29 декабря 2012. Источник. Дата обращения: 29 декабря 2012. Архивировано 22 июля 2011 года.
  8. 1 2 Dave Hansen. Resource Management (PDF). Linux Foundation. Архивировано из оригинала (PDF presentation slides) 9 октября 2011. Дата обращения: 29 декабря 2012.
  9. Matt Helsley (2009-02-03). "LXC: Linux container tools". IBM developerWorks. Архивировано из оригинала 29 октября 2012. Дата обращения: 29 декабря 2012.
  10. Grid Engine cgroups Integration. Scalable Logic (22 мая 2012). Архивировано из оригинала 26 января 2013 года.

Ссылки

Эта страница в последний раз была отредактирована 16 декабря 2023 в 19:07.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).