Есть несколько вариантов использования групп . Из системного администрирования, вероятно, наиболее важным является ограничение ресурсов - классическим примером здесь является доступ к процессору. Если вы создаете группу, например, sshd
и даете ей незначительную долю времени процессора (по сравнению с другими группами или по умолчанию, в которую попадают все несортированные процессы), вы гарантированно сможете войти в систему даже в те моменты, когда машина будет работать задачи с интенсивным использованием процессора.
Что еще интереснее, если вы дадите этим процессам «удаленного доступа» гораздо большую долю ресурсов ЦП, чем остальным, вы сможете войти в систему почти мгновенно (поскольку демон ssh будет иметь приоритет над остальными запущенными процессами), в то время как вы не пострадаете общая вычислительная мощность машины, поскольку ресурсы распределяются только на основе потребностей. Обычно вы хотите сделать это вместе с приоритетами ввода / вывода (включая сеть). Однако, как правильно указывает Джон в комментарии ниже, никто не хочет делать эти вещи небрежно (так как это может произойти неожиданным образом). Важно помнить, что группы наследуются по умолчанию - то есть никто не хочет запускать нагрузку на память / процессор из такого сеанса ssh. Однако для этого существуют механизмы, которые могут назначать процессы группам при их запуске.
Другое использование - это изоляция процессов друг от друга - в сочетании с другими функциями (изоляция пространства имен) в последних ядрах Linux, которые они используют для создания виртуализации на уровне ОС, такой как LXC (контейнеры Linux) .
Помимо этого вы можете выполнять различные операции учета и контроля (замораживание некоторых групп процессов, назначение их конкретным ядрам процессора и т. Д.).
Две ссылки здесь, должны быть разумной отправной точкой, если вы ищете дополнительную информацию. Вы также можете проверить Documentation/cgroups
каталог в дереве исходного кода ядра Linux.