在之前的 Jelastic 论坛中,曾讨论过系统没有释放 RAM,最终导致系统崩溃的问题。
我相当肯定我在我的环境中遇到了这个问题(在Jelastic 1.9.2.1上运行),原因如下:
- 我的应用程序在其他托管环境中稳定,我的应用程序没有内存泄漏
- 我可以在图表中看到定期授予更多 RAM,RAM 使用量以统一且可预测的步骤增加
- RAM 永远不会被释放
我渴望使用Jelastic 1.9.3中新的 GC Agent 功能。http://docs.jelastic.com/release-notes-193#a http://docs.jelastic.com/releasing-ram-gc-agent
我的云提供商表示他们计划升级到 Jelastic 1.9.3,但没有说什么时候。
问题 1:一旦我的云提供商升级,此功能是否会自动用于我现有的环境?
问题2:现在可以给我的1.9.2.1环境打补丁吗?是否只需要下面的 jar,它是否与我的 1.9.2.1 环境兼容?
从文档中,在 variables.conf 中:-javaagent:/var/lib/jelastic/java/jelastic-gc-agent.jar
更新 - 部分解决
升级后,我的环境没有 jelastic-gc-agent.jar。当我将标准配置添加到我的 variables.conf 时,tomcat 启动失败,因为 jelastic-gc-agent.jar 不存在。
我上传了@leo提供的jar,并正确配置了路径,tomcat成功启动,但是没有证据表明代理正在工作,没有日志记录,没有减少内存消耗。绿线(tomcat 统计数据、RAM 图)只是不断上升(在很长一段时间内)。
我已经配置了 jvisualvm。我的一个环境的缩放限制为 12(在 tomcat 组件上)。在 jvisualvm Overview 中观察到以下内容: -XX:+UseSerialGC -Xminf0.1 -Xmaxf0.3 -Xms16M -Xmx1501M -javaagent:/opt/tomcat/lib/jelastic-gc-agent.jar=debug=true,period= 60
来自http://docs.jelastic.com/releasing-ram-gc-agent
它 [Jelastic GC 代理] 仅适用于两种垃圾收集:
- -XX:+UseParNewGC (如果 -Xmx < 8000m)
- -XX:+UseG1GC (如果 -Xmx >= 8000m)
所以我然后尝试了“-XX:+UseParNewGC”,但我得到了一个错误:选项列表中的收集器组合冲突;有关允许的组合,请参阅发行说明 错误:无法创建 Java 虚拟机。错误:发生了致命异常。程序将会退出。
当我创建一个全新的环境并启用代理时,我可以看到它正在工作、记录等。
一些成功:我的一个较大的环境(Scaling Limit 64)已成功修补,我看到代理正在工作。因此,较小的环境肯定存在问题。