(FULL GC) 隐患排查与优化
发布时间
阅读量:
阅读量
最近其他业务线反馈全球化的方案可能会导致全 globe cluster的问题。具体来说,在该方案中我们实现了以下功能:建立了一个过滤机制拦截所有 incoming HTTP 请求,并将来自客户端的访问语言信息存储在会话中;随后我们重构了响应处理逻辑以确保文案的一致性,并通过编码防护机制防止可能出现的问题;最后,在响应生成时根据客户端的语言环境动态调整编码方案。
这里会出现一个问题;如果处理的是请求量较大的场景,则需要注意由于session生命周期的影响可能会出现FULL GC现象;为了消除这一潜在风险,请检查API应用的行为模式;同时监控内存使用情况并分析GC行为模式;以下是一些排查步骤:
1.sudo -u jetty jstat -gcutil pid
2.grep -n "CMC-initial-mark" gc.log.0.cuurnet
注意到有一批session对象未能被及时回收,并已进入老年代区域。由于服务器配置较为丰富,在未触发相应的警报机制的情况下,“FULL GC”的周期相对较长。
为了优化系统性能,并对请求对象 session 进行更换为更适合的方式;同时建议我们在应用工程中进行自定义设置以调整过期时间;当前默认采用的是Jetty容器的30分钟缓存时长设定;在经历15次GC回收后仍无法清除;在经过15次GC回收后仍不超过30分钟;这可能会导致GC进入
全部评论 (0)
还没有任何评论哟~
