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