Memory leaks 如何修复Glassfish中泄漏的SSLSessionImpl?

Memory leaks 如何修复Glassfish中泄漏的SSLSessionImpl?,memory-leaks,glassfish,Memory Leaks,Glassfish,最基本的是,我有Glassfish 2.1和Java 1.6.015,它可以工作几天,但它会消耗掉它所能消耗的所有内存,似乎不管最大内存设置有多高。它是一个32位的jvm,最大内存现在为4GB,它很快就用完了所有内存,然后用垃圾收集器猛击,使吞吐量达到了爬行速度。因此,经过几次尝试,我得到了一个3GB堆转储,并用YourKit打开了它 此服务器上的用法是一个swing客户端执行一些RMI调用和一些REST https调用,再加上一个php网站调用许多REST https服务 它表明: Name

最基本的是,我有Glassfish 2.1和Java 1.6.015,它可以工作几天,但它会消耗掉它所能消耗的所有内存,似乎不管最大内存设置有多高。它是一个32位的jvm,最大内存现在为4GB,它很快就用完了所有内存,然后用垃圾收集器猛击,使吞吐量达到了爬行速度。因此,经过几次尝试,我得到了一个3GB堆转储,并用YourKit打开了它

此服务器上的用法是一个swing客户端执行一些RMI调用和一些REST https调用,再加上一个php网站调用许多REST https服务

它表明:

Name                                          Objects    Shallow Size     Retained Size
java.lang.Class                               22,422     1,435,872        1,680,800,240
java.lang.ref.Finalizer                       3,086,366  197,527,424      1,628,846,552
com.sun.net.sll.internal.ssl.SSLSessionImpl   3,082,887  443,935,728      1,430,892,816
byte[]                                        7,901,167  666,548,672      666,548,672
……等等。哎呀,记忆到哪里去了?哦,300万SSLSessionImpl实例,仅此而已

似乎所有的https调用都会导致这些SSLSessionImpl对象累积,但是它们永远不会被GC’ed。在您的工具包中查看它们,终结器就是GC根。在网上浏览这看起来非常像和


下一步我该去哪里?如何找到问题的症结所在?

现在升级到最新的JVM后,问题似乎得到了解决。与此相关的修复程序。在升级JVM之前,我使用100000-4000000 SSLSessionImpl进行了几个堆转储,现在通常只有不到5000个实例。

那么你是说这是你看到的问题吗?