Young GC的时间超长

1.观察gc日志发现young gc日志很长

2020-01-18T11:01:46.486+0800: 10670069.343: [GC2020-01-18T11:01:54.876+0800: 10670077.733: [ParNew: 1119126K->770K(1258304K), 0.0078630 secs] 3377296K->2258940K(4054528K), 8.3983450 secs] [Times: user=0.05 sys=0.05, real=8.40 secs] 
Heap after GC invocations=445687 (full 9):
 par new generation   total 1258304K, used 770K [0x00000006fae00000, 0x0000000750350000, 0x0000000750350000)
  eden space 1118528K,   0% used [0x00000006fae00000, 0x00000006fae00000, 0x000000073f250000)
  from space 139776K,   0% used [0x000000073f250000, 0x000000073f310890, 0x0000000747ad0000)
  to   space 139776K,   0% used [0x0000000747ad0000, 0x0000000747ad0000, 0x0000000750350000)
 concurrent mark-sweep generation total 2796224K, used 2258170K [0x0000000750350000, 0x00000007fae00000, 0x00000007fae00000)
 concurrent-mark-sweep perm gen total 77656K, used 46556K [0x00000007fae00000, 0x00000007ff9d6000, 0x0000000800000000)

2.通过grafana查看资源使用,io负载高

在这里插入图片描述

3.参考文档分析原因

YoungGC 停顿超长时间
https://blog.csdn.net/taoy86/article/details/79746652
https://engineering.linkedin.com/blog/2016/02/eliminating-large-jvm-gc-pauses-caused-by-background-io-traffic

young gc时间过长可能是应为记录gc日志的操作被系统的io给阻塞了
在这里插入图片描述

4.解决方法

方案一:
将gc的日志记录到内存文件系统(/dev/shm)避免io阻塞
缺点:因为使用内存文件系统,重启时记录丢失

方案二:
单独为gc日志准备一个硬盘,或者SSD(高速硬盘)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值