我正在阅读 jboss 如何将负载因子和生命周期事件传达给 mod_cluster 以有效地对集群进行负载平衡。在 ruby on rails world unicorn 和乘客 4 中进行带外垃圾收集,其中一个实例暂时从集群中取出以进行 gc 然后放回,因此响应延迟不受 gc 的影响。jboss 和 mod_cluster 是否做同样的事情,或者实际上是相同的事情?
问问题
167 次
1 回答
1
好吧...如果您在生产环境中遇到与垃圾收集相关的问题(例如,假设系统在 10 分钟内完全没有响应),那么您就有了与 JVM/应用程序配置相关的问题。
mod_cluster 作为智能负载均衡器,计算工作节点上的负载并将其发送回 httpd。此负载可能包含以下一项或多项指标:
- 繁忙
- 堆
- 中央处理器
- 要求
- 接收流量
- 发送流量
- 会话
我认为无论如何,cpu 指标很容易收集密集的垃圾收集。
另一方面......如果你真的想以这种方式解决你的垃圾收集问题,最好通过 mod_cluster-manager 控制台完成,在那里可以暂时禁用节点。一旦节点被禁用,就不会在其上创建任何新会话,因此一旦所有会话都被耗尽,您可能会拥有一个没有任何活动请求的节点。
另一种方法是编写自己的负载指标,以某种方式确定 JVM 是否为 GC 做好准备,如果是,它将影响正在发送的负载。然而,我发现这是一个相当肮脏的把戏。
高温高压
于 2013-05-20T14:52:13.243 回答