使用 cgroups 有哪些优点/缺点?

使用 cgroups 有哪些优点/缺点?

我管理着几台基于 Linux 的服务器,我们正在考虑将几个 JBoss 应用程序以及几个在 Apache 上运行的网站从具有 4 个内核的 RHEL 5.5(64 位)服务器迁移到具有 24 个内核的 RHEL 6(64 位)服务器。我的主管提到了使用 cgroups 来管理新服务器上的内存/CPU 分配的可能性。我自己做了一些阅读/研究,对 cgroups 的用途及其功能有相当好的理解。

我的问题是,运行 cgroups 有什么好处,这是一种管理 JBoss 应用程序的有效方法吗?

答案1

最大的优点是对不同的工作负载施加限制,以便它们获得所需的性能和/或不会影响在同一服务器上运行的其他工作负载。

您可以限制 JBoss 将使用的 CPU/内存量或构建更复杂的平衡策略。

当您将许多工作负载整合到一台服务器上时,保证它们使用的资源量非常重要。当您拥有多台物理服务器时,这自然是必须的,因为每台服务器本身都有资源限制。

答案2

您还没有描述“管理”服务器的目标。您根本不需要做任何事情 - 它们可能共存。如果您知道实际问题,那么 cgroups 可能是解决该问题的方法之一。

例如,您是否担心某些应用程序会占用过多内存,从而影响其他应用程序?或者您是否担心从安全角度进行隔离?或者担心 CPU 资源竞争?或者 NUMA 方式放置进程(相对于核心、插槽、内存通道)?

我认为,除非您正在解决一个明确确定的问题,否则花时间创建一个非常 D&S 且锁定的硬件资源划分是没有意义的。

相关内容