看了老师的视频,但是实战起来还是有点蒙,希望指点迷津

来源:2-1 JVM的参数类型

咸菜3

2019-07-02

线上问题是,高峰期CPU飙高,GC频繁,期望调优后高峰期GC耗时可控,CPU稳定,除了加CPU或者拉长gc停顿目标的其他优化手段

JVM配置:
图片描述
GCViewer图
图片描述

Event Detail
图片描述

Summary:

图片描述

Memory:
图片描述

Pause:
图片描述

gcLog原始文件:

写回答

3回答

咸菜3

提问者

2019-07-03

老师这是其中一条长耗时日志,能帮忙分析下产生原因以及解决办法么?服务里有定时job,几分钟就会生成一个较大的map数据结构


2019-07-03T08:56:40.059+0800: 44911.714: [GC pause (G1 Evacuation Pause) (young)

, 0.1776547 secs]

   [Parallel Time: 173.7 ms, GC Workers: 28]

      [GC Worker Start (ms): Min: 44911714.7, Avg: 44911715.0, Max: 44911715.2,

Diff: 0.5]

      [Ext Root Scanning (ms): Min: 1.6, Avg: 2.9, Max: 10.6, Diff: 9.1, Sum: 82

.2]

      [Update RS (ms): Min: 0.0, Avg: 5.0, Max: 9.3, Diff: 9.3, Sum: 139.8]

         [Processed Buffers: Min: 0, Avg: 25.6, Max: 76, Diff: 76, Sum: 717]

      [Scan RS (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.5]

      [Code Root Scanning (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.

0]

[Object Copy (ms): Min: 161.9, Avg: 165.2, Max: 171.4, Diff: 9.4, Sum: 462

4.3]

      [Termination (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.6]

         [Termination Attempts: Min: 1, Avg: 22.7, Max: 33, Diff: 32, Sum: 636]

      [GC Worker Other (ms): Min: 0.0, Avg: 0.1, Max: 0.2, Diff: 0.2, Sum: 2.5]

      [GC Worker Total (ms): Min: 173.0, Avg: 173.2, Max: 173.5, Diff: 0.5, Sum:

 4850.0]

      [GC Worker End (ms): Min: 44911888.1, Avg: 44911888.2, Max: 44911888.3, Di

ff: 0.2]

   [Code Root Fixup: 0.2 ms]

   [Code Root Purge: 0.0 ms]

   [Clear CT: 0.4 ms]

   [Other: 3.4 ms]

      [Choose CSet: 0.0 ms]

      [Ref Proc: 0.8 ms]

      [Ref Enq: 0.0 ms]

      [Redirty Cards: 0.7 ms]

      [Humongous Register: 0.2 ms]

      [Humongous Reclaim: 0.0 ms]

      [Free CSet: 0.4 ms]

   [Eden: 728.0M(728.0M)->0.0B(912.0M) Survivors: 296.0M->112.0M Heap: 8226.2M(2

0.0G)->7606.9M(20.0G)]

 [Times: user=1.92 sys=0.04, real=0.18 secs]


0
4
咸菜3
回复
若鱼1919
嗯嗯,我的意思是预期100ms的停顿,180ms的停顿耗时主要在 [Object Copy (ms): Min: 161.9, Avg: 165.2, Max: 171.4, Diff: 9.4,Sum: 4624.3] 知道是这部分耗时如何针对性的做优化
2019-07-03
共4条回复

咸菜3

提问者

2019-07-03

目前遇到的问题是线上容器资源有限,cpu就那么多,高峰期的时候,gc并发线程为了满足gc停顿目标(高峰期难达成停顿目标)和用户线程争抢资源,本身cpu就不够用就更恶化了,期望高峰期和低峰期gc使用cpu差异不要太大,因为拉长gc停顿目标,低峰期单次gc时间也会变长,每次gc的时间也会变长,已经做了好几次的停顿目标的改动了,从30ms改动到了100ms了,不希望继续这么改动
0
1
若鱼1919
加cpu 没啥好办法。cpu负载持续很高的话 很容易宕机
2019-07-03
共1条回复

若鱼1919

2019-07-03

//img.mukewang.com/szimg/5d1bf88f00018d4509270309.jpg

GC挺正常的 没啥问题。

应该是你的服务器的负载太高了,不是GC导致的。

0
0

Java生产环境下性能监控与调优详解

系统掌握线上性能监控与 GC调优,线上代码调试

2373 学习 · 262 问题

查看课程