【JVM调优】

常见命令:

jps [ options ]
在这里插入图片描述

jinfo [ options ] pid

        查看Java配置信息

jstat [ options pid ms count]:

虚拟机统计信息监视工具:

  • jstat -gc pid 100 20 :每隔100ms,查询一次PID垃圾回收情况,一个执行20次
  • jstat -gcutil pid :查看垃圾回收详情
  • jstat -gccause pid:查看上一次FGC的原因
    在这里插入图片描述

在这里插入图片描述

jmap [ options ] pid:

  • jmap -dump:live,format=b,file=dump.hprof pid: 生成堆快照
  • jmap -histo PID:分析JVM中各种对象内存空间占用大小
    在这里插入图片描述

jstack [ options ] PID

堆转储快照分析工具

  • jstack -l pid:查看pid的堆栈
    在这里插入图片描述

jhat

堆转储快照分析工具

  • jmap -dump:live,format=b,file=dump.hprof PID jmap生成堆快照
  • jhat dump.hprof -port 7000

调优的最终目标:

GC的时间足够的小,必须要一个更小的堆


GC的次数足够的少,必须要一个更大的堆


发生Full GC的周期足够的长,


如果应用存在大量的临时对象,应该选择更大的年轻代;如果存在相对较多的持久对象,年老代应该适当增大。

  • 将新对象预留在年轻代

通过设置一个较大的年轻代预留新对象,设置合理的 Survivor 区并且提供 Survivor 区的使用率,可以将年轻对象保存在年轻代。一般来说,Survivor 区的空间不够,或者占用量达到 50%时,就会使对象进入年老代(不管它的年龄有多大),所以 -XX:TargetSurvivorRatio=90,提高 from 区的利用率

生产常用命令:

jsp 查找进程
top -Hp pid 查找最耗费CPU的线程
printf “%x\n” pid 转换成16进制
jstack pid | grep 十六进制的pid
jstat -gc pid 100 20 :每隔100ms,查询一次PID垃圾回收情况,一个执行20次
jstat -gcutil pid :查看垃圾回收详情
jstat -gccause pid:查看上一次FGC的原因
jmap -permstat pid
jmap -heap pid:查看进程堆内存使用情况
jmap -histo[:live] pid查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象
jmap -dump:format=b,file=文件名称 pid

通过排查工具有:JConsole、VIsualVM,分析dump

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值