jprofiler调查openfire内存泄露

windows下,调试本机程序建议直接使用向导New Server Integration

选择gerneral server application

一路下一步,最后会生成需要添加的jvm参数,将其添加到java 命令后,对于windows下openfire,则是在openfired.vmoptions中添加。

如果发现此问题:

java.lang.NoClassDefFoundError: com/jprofiler/agent/InstrumentationCallee

则应检查加在openfired.vmoptions中的参数,在windows下,应该是

-agentlib:jprofilerti=port=18849 
-Xbootclasspath/a:D:\Program Files\jprofiler5\bin\agent.jar

注意是两行,不要双引号 (上面的值是通过配置向导生成的)

比较常用的是Heap Walker,生成快照选择指定类,然后可在references视图中看到引用,这对内存泄漏原因查找很有帮助。

结果发现内存逐渐上升,gc之后没有回到原来水平,主要是log4j的类使用char[]较多,将log4j日志级别设置为error,再观察似乎内存水平较平缓,尚待继续观察。

参考:

http://developer.51cto.com/art/201203/326402.htm


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1