排查Java应用内存泄漏问题的步骤
内存泄漏是指java应用的堆内存使用率持续升高,直至内存溢出。无论哪种内存泄露,我们的解决方法都是要定位到具体是什么对象,占用了大量内存,从而方便我们基于此进行代码分析,debug,找出代码问题。使用命令获取jcmd首先需要获取java 进程id,获取到java进程后如果执行报错一般是由于执行jcmd的用户同java应用本身不是同一个用户。解决办法是切换到应用对应的用户下再执行上述命令如果应用是在本地,除了用上述方法外,还可以用JVisualVM 、JConsole但更为重要的,为了准确还原应用故障的现场,最好通过指定java 执行参数,在程序出错时,自动dump获取到dump文件后,需要使用eclipse.org 出品的 Memory Analyzer 工具。使用其中的Dominator Tree,查看各对象的内存占用情况找出占用内存最多的对象及其类信息
用户评论