JVM调优

常用命令

        JPS查询JAVA进程

        

      Jmap -heap pid 查看堆内存信息

jstack PID 查看死锁信息

JVisual Vm线程dump也可以查看死锁信息

jinfo -flags pid 查看配置启动参数

jinfo -sysprops pid查看系统参数

jstat 查看堆相关信息

        jstat -gc pid查看堆相关信息

        s0c: s0区域大小(Kb)                s1c: s1区域大小(Kb)

        s0u: s0区域使用情况                    s1u: s1区域使用情况

        ec: Eden区域大小                        eu:Eden区域使用情况

        oc:老年代大小                                ou:老年代使用大小

        mc:元空间大小                                mu:元空间使用情况

        ccsc:压缩类空间大小                        ccsu:压缩类使用情况

        YGC:年轻代回收次数                        YGCT:年轻代回收耗时 (单位:s)

        FGC:FullGC次数                                FGCT:FullGC耗时

        GCT:GC耗时总时间

内存增长速率评估思路

        第一步,查看年轻代对象增长速率,根据jstat -gc pid 1000 100 监测线程,查看每秒eden区域增长的大小。

        第二步,查看YGC出发频率和每次耗时,通过Eden区域每次增长的大小预估出YGC发生时间,YGCT/YGC 可以查看系统会因为YGC卡顿时间。

        第三步,计算每次YGC有多少对象进入老年代,通过上面预估YGC发生的频率,比如3分钟发生一次YGC, 使用jstat -gc 3*60*1000 10 监测近10次YGC数据情况,观察Eden s0 s1和老年代每次增长的大小,推算出平均一次YGC会有多少对象进入老年代。

        第四步,根据老年代的增长速率就可以推算出FullGC发生的时间,通过FGCT/FGC计算FGC平均耗时。

        优化思路:尽量避免FullGC,让每次YGC后存活的对象尽量少于Survivor区域50%

Arthas 使用
         简介 | arthas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值