управление приоритетом приложений с помощью cgroups

awk 'NR==1{print; print "new line"} NR!=1'
8
24.11.2012, 16:17
1 ответ

Существует несколько использования для cgroups. От системного администрирования, вероятно, самое важное ограничивает ресурсы - классический пример, здесь являющийся доступом CPU. Если Вы создаете группу для, например. sshd и дайте ему некоторую ненезначительную долю процессорного времени (по сравнению с другими группами или значением по умолчанию, под который падение все неотсортированные процессы), Вам гарантируют способности войти в систему даже во времена, когда машина будет выполнять интенсивные ЦП задачи.

Более интересно, если Вы дадите этому "удаленному доступу" процессы намного более высокая доля ЦП затем остальные, то Вы сможете войти в систему почти немедленно (потому что ssh демон будет расположен по приоритетам по остальной части выполнения процессов), в то время как Вы не повредите общую силу вычисления машины, так как ресурсы выделяются только на основе на потребность. Вы обычно хотите сделать это вместе с вводом-выводом (включая сеть) установление приоритетов. Однако как John правильно указывает в комментарии ниже, каждый не хочет делать эти вещи небрежно (так как он мог бы вести ответный огонь неожиданным способом). Важная вещь принять во внимание состоит в том, что группы наследованы по умолчанию - т.е. каждый не хочет запускать пожирателя ресурсов памяти/ЦП с такой ssh сессии. Все же для этого существуют механизмы, которые могут присвоить процессы cgroups, как они запускают.

Другое использование изолирует процессы друг от друга - в сочетании с другими функциями (изоляция пространства имен) в недавних ядрах Linux, они используются для создания виртуализации уровня ОС как LXC (Контейнеры Linux).

Кроме этого можно сделать различный учет и управлять материалом (замораживающий некоторые группы процессов, присваивая их определенным ядрам процессора и т.д.).

Две ссылки здесь, должно быть разумное стартовое место, если Вы смотрите для получения дополнительной информации. Можно также хотеть проверить Documentation/cgroups каталог в исходном дереве ядра Linux.

8
27.01.2020, 20:12
  • 1
    . sshd пример интересен и поднимает другую связанную мысль. один аспект, который я не рассмотрел, гарантирует, что другие ресурсы выделяются соответственно - я предполагаю, что кто-то с неполным знанием профиля приложения может нанести ущерб, только выделив ресурсы для ЦП (в этом примере), и никакое выделение для ввода-вывода (скажите что сеть). Раз так - там известные профили для cgroups, опубликованного где-нибудь? –  Johnnie 24.11.2012, 22:21
  • 2
    @John интересный вопрос действительно. Вы могли бы хотеть проверить дистрибутивы, которые имеют systemd, который (ab) использует cgroups в его собственных целях - systemd файлы единицы для сервисов могли бы дать некоторый ключ к разгадке то, что могло бы быть разумным. Но в конце это всегда до системного администратора, чтобы научиться на горьком опыте, что действительно не является "Good Idea (TM)". –  peterph 24.11.2012, 22:48

Теги

Похожие вопросы