开发者社区> 问答> 正文

GC日志中times表示什么含义?

最近系统出现了运行一段时间后就无法响应的问题,表现就是浏览器的圈圈一直在转,页面没有加载出来。
查看GC的日志,有一些疑问是关于日志中的时间,如下面部分日志:
1182.030: [GC[YG occupancy: 8729512 K (9216000 K)]1182.030: [Rescan (parallel) , 7.6001940 secs]1189.630: [weak refs processing, 0.0000190 secs] [1 CMS-remark: 262120K(436904K)] 8991632K(9652904K), 7.6004580 secs] [Times: user=86.06 sys=0.42, real=7.60 secs]

13901.282: [GC 13901.283: [ParNew: 8766574K->400883K(9216000K), 1.9300940 secs] 10239467K->1917256K(11578944K), 1.9309390 secs] [Times: user=13.68 sys=0.07, real=1.93 secs]

有两个问题:
这两段日志中后面Times的3个时间分别是什么含义?
因为看到第一个user有86秒多,不知道这个有没有什么影响?
我是刚进新公司,系统最近老是出现无响应,自己就看了日志。我看了下jvm的参数配置,觉得有问题,各位看看这些参数有问题么:

-server -Xms10200m -Xmx13200m -Xmn10000m -XX:MaxPermSize=4040m -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -Dsun.reflect.inflationThreshold=2147483647 -XX:PermSize=3000m -XX:+PrintGCDetails -Xloggc:/data/resin/gc_detail.log  -verbose:class -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/resin/heapdump.bin

展开
收起
蛮大人123 2016-03-03 11:27:06 3377 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    这些时间是GC花费的时间,user是用户态耗费的时间,sys是内核态耗费的时间,real是整个过程实际花费的时间。user+sys是CPU时间,每个CPU core单独计算,所以这个时间可能会是real的好几倍。
    从你的日志看,一次ParNew居然回收掉了8G多的内存,程序真得要好好优化一下了。
    几点优化的建议:
    Xms可以和Xmx设成一样大小,这样可以避免GC之后重新分配内存
    Xmn太大,这其实是你遇到的问题的根本原因,官方推荐配置为整个堆的3/8,对于你的情况,可以试试-Xmn=4G

    2019-07-17 18:51:08
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载