【java问题排查方法】

文章目录

    • 一、内存泄漏排查方案

一、内存泄漏排查方案

jmap是Java JDK提供的一个命令行工具,用于生成Java虚拟机的堆转储快照dump文件,它可以帮助开发者查看Java堆的内存使用情况,诊断内存泄漏和其他内存问题。

要使用jmap,需要在命令行中输入以下命令:jmap [option] pid,其中pid是要进行转储的Java进程的ID。

jmap有很多选项可以控制其行为,例如:

-dump :此选项用于生成堆转储文件。可以进一步指定输出文件的位置或格式。例如,要生成Java进程ID为12345的堆转储文件,可以使用以下命令:jmap -dump:format=b,file=heap.bin12345。
-histo :此选项用于显示堆中的对象实例数量和大小的柱状图。这对于查找内存泄漏和高内存消耗等问题非常有用。
-permstat :此选项用于显示永久代(perm gen)中类型的统计信息。
有关详细信息,请查看jmap的文档或使用"jmap -help"命令查看帮助信息。

【java问题排查方法】_第1张图片
jps查看java进程的pid

开启 nativetrack 之后,用以下方式可以观察到 jvm实际消耗的物理内存增减情况
【java问题排查方法】_第2张图片

查看内存占用情况:top -p [pid]

启动时创建 baseline

然后定时 summary.diff

只要这个值没有一直递增,那么就基本视为正常了

另外,top res - total commited 基本可以视为 ugc 内存(包括glibc的内存碎片),这个值在辅助观察linux内存情况的时候也很有参考价值

你可能感兴趣的:([Java],java,开发语言)