我们有一个系统,在Apache httpd负载均衡器后面有两个openam。从日志中看,负载似乎是均匀平衡的,两个openam在一个时间范围内大约有35,000个请求。尽管在同一时间段内有1个openam向另一个发送了约10万个请求,但只收到了93k。
关于OpenAM属性,我们有以下内容
会话持久性和HA故障转移已启用:true
减少串扰启用:true
会话注销/销毁已启用:已禁用
减少串扰清除延迟:1
我们已经注意到,一个OpenAM使用的RAM量大约是另一个OpenAM的3倍(4.5gb对1.5gb)。负载平衡器报告502 OpenAM的代理错误,该错误正在使用更多的RAM,并从其他服务器接收更多的请求。这些大约每20或30分钟发生一次。
httpd平衡器的代理超时设置为默认值,我认为是30秒。我监视了每个OpenAM的连接数量,它们似乎都相同,大约为30。
这些机器具有大量可用的RAM,并且我们还没有限制tomcat将使用的堆数量。 OpenAM部署在tomcat8容器中并运行java8。
谁能想到任何原因,为什么1个OpenAM需要3倍的RAM量,并且在负载均衡器尝试连接时超时?欢迎所有帮助。
最佳答案
在13.0.0左右的版本中,降低串扰模式并不总是能正常工作,因此建议禁用该功能。
很难说出某个节点为什么会消耗更多的RAM,您应该考虑对繁重的进程运行jmap来尝试确定您是要处理内存泄漏还是其他问题。
关于tomcat - 负载均衡器和openam之间的502代理错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44108774/