在CF-10上使用服务器监控时,我注意到我公司的一台测试服务器上有一个奇怪的行为。下面是服务器上JVM内存使用情况的屏幕截图,CF站点上根本没有发生任何事情,也没有任何流量

。
正如您所看到的,已用内存一直在稳步上升,直到GC开始(我假设)并使已用内存回落,然后重复该过程。这会导致某种内存泄漏吗?
发布于 2012-11-29 22:12:58
除非你有其他证据,否则这可能是一个健康的服务器。在ColdFusion/Tomcat中有一堆后台进程,它们可以清理事情并记录监控数据(包括向监控工具提供数据:可能会使其成为海森行为)。所有这些都会在运行时分配内存,并且会逐渐丢弃堆,直到达到阈值,此时会触发一个小GC,并且您的内存将返回到下限。
对于我来说,如果基线(上图中锯齿图的底部)在每个后续步骤中都更高,就会表明内存泄漏。垃圾收集之后的时间点显示了仍在使用的内存量,这在您的图表上看起来非常稳定。
发布于 2012-11-30 02:17:35
有关垃圾收集的详细信息
https://www.jaspersoft.com/sunopenjdk-jvm-garbage-collection-tuning-tutorial
另请参阅Java7中使用的G1垃圾收集器
http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html
您还可以更改垃圾收集的速率。这是不推荐的,但这是可能的。在执行此操作之前,请确保您知道如何恢复CF JVM设置
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
您还可以建议垃圾收集。不推荐使用,但这是可能的
http://rip747.wordpress.com/2008/09/29/help-force-coldfusion-to-release-memory/
https://stackoverflow.com/questions/13627512
复制相似问题