【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"命令查看帮助信息。

在这里插入图片描述
jps查看java进程的pid

开启 nativetrack 之后,用以下方式可以观察到 jvm实际消耗的物理内存增减情况
在这里插入图片描述

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

启动时创建 baseline

然后定时 summary.diff

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值