mos*_*eri 8 java garbage-collection memory-leaks rmi out-of-memory
我有一个问题,我可以在探查器中找到,但我不知道如何解决它.加载应用程序后,我得到这个锯齿波模式,程序空闲但消耗内存,你可能会在这里看到.
当我检查采样器线程内存分配时,我看到RMI TCP连接到我的eth0(172.16.20.51)以每秒半兆字节消耗内存(413,213),这导致生产记录'停止世界'GC :-(
我无法跟踪这个问题的原因,因为我不知道它是哪个线程的端口,另一方面我尝试用-com.sun.management.jmxremote.authenticate = false -Dcom运行我的jar .sun.management.jmxremote.ssl =假标志,但没有帮助.任何想法将不胜感激.
小智 11
我知道这是一个老帖子,但是因为我偶然遇到同样的问题,答案也可能对其他人有所帮助.
RMI TCP连接线程是虚拟VM对内存使用情况进行采样的方式.因此,在分析时您期望看到高分配字节数/秒,并且(不一定)表示您的应用程序存在任何问题.例如,参见这个SO问题.
关于堆转储,Visual VM在Monitor和Sampler选项卡中有一个"Heap Dump"按钮,它将保存堆转储文件.您可以将其加载到例如免费的Eclipse Memory Analyzer(MAT)中以检查内存泄漏等.