Каковы преимущества / недостатки использования cgroups?
Я администрирую несколько серверов на базе Linux, и мы рассматриваем миграцию нескольких приложений JBoss, а также нескольких веб-сайтов, работающих на Apache, с сервера RHEL 5.5 (64-разрядный) с 4 ядрами на сервер RHEL 6 (64-разрядный) с 24 ядра. Мой руководитель упомянул о возможности использования cgroups для управления распределением памяти / ЦП на новом сервере. Я провел некоторое чтение / исследование самостоятельно и довольно хорошо понимаю назначение cgroups и что они могут сделать.
Мой вопрос: в чем преимущества использования cgroups и является ли это эффективным способом управления приложениями JBoss?
2 ответа
Самым большим преимуществом является наложение ограничений на различные рабочие нагрузки, чтобы они получали требуемую производительность и / или не влияли на другие рабочие нагрузки, работающие на одном сервере.
Вы можете ограничить объем используемой процессором / памятью JBoss или создать более сложные политики балансировки.
Когда вы консолидируете множество рабочих нагрузок на одном сервере, чрезвычайно важно гарантировать, сколько ресурсов они используют. Что-то, что по своей сути делается, когда у вас много физических серверов, потому что каждый блок является ограничением ресурсов для себя.
Вы не описали свои цели в "управлении" серверами. вам вообще ничего не нужно делать - все они могут сосуществовать. Если вы знаете о реальной проблеме, то cgroups может быть одним из способов решения этой проблемы.
Например, вы обеспокоены тем, что некоторые приложения будут сожрать слишком много памяти, воздействуя на другие приложения? или вы обеспокоены изоляцией с точки зрения безопасности? или беспокоит конкуренция за ресурсы процессора? или NUMA-мудрое размещение процессов с ядрами, сокетами, каналами памяти?
По моему мнению, не имеет смысла тратить время на создание самого D&S, ограниченного разделения ваших аппаратных ресурсов, если только вы не решаете четко обозначенную проблему.