[英]Java process (Non-Heap) Memory Leak
问题说明:我们在Web应用程序中(在CQ5上)面临以下问题:
系统配置详细信息:•系统内存:7GB•Xmx:3.5 GB•Xms:1 GB•MaxPermGen:300MB•观察到的最大线程数:620(包括300个HTTP请求服务线程)•Xss:默认
问题是cq5 java进程(运行servlet引擎)消耗的内存随着时间的推移而不断增加。 一旦达到6至6.5 GB以上(并且系统内存达到7 GB),JVM就会停止响应。 (由于内存不足和大量的分页活动)。 但是,堆和permgen总计保持在3.8(3.5 + 0.3)GB或以下。 这意味着非堆内存(本机内存+线程堆栈空间)一直从几百MB(在CQ5服务器重新启动后)增长到超过2-3 GB(在长期运行4-5个小时后承受重负载)。 因此,我们的目标基本上是找出非堆内存中的内存泄漏,这可能是由于第三方库,Java代码的间接引用等导致的。 我们没有收到任何内存不足错误。
需要帮助:
这实际上取决于您的特定实现:已部署的代码,正在使用的基础结构,正在运行的版本,正在使用的应用程序服务器(如果有)等。
也就是说,我遇到了CQ5.5和Image Servlet的内存泄漏问题。 实际上,这是为Image Servlet供电的Java库之一中的内存泄漏,其背后是隐藏的。 它是通过Java版本更新补救的,但是是由Image servlet引起的。 从长远来看,这是您的问题,但可能值得一提。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.