日前查看某个程序的日志,发现一直在报GC相关的信息,不确定这样的信息是代表正确还是不正确,所以正好借此机会再复习下GC相关的内容:

以其中一行为例来解读下日志信息:

[GC (Allocation Failure) [ParNew: 367523K->1293K(410432K), 0.0023988 secs] 522739K->156516K(1322496K), 0.0025301 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]

GC:

表明进行了一次垃圾回收,前面没有Full修饰,表明这是一次Minor GC ,注意它不表示只GC新生代,并且现有的不管是新生代还是老年代都会STW。

Allocation Failure:

表明本次引起GC的原因是因为在年轻代中没有足够的空间能够存储新的数据了。

ParNew:

表明本次GC发生在年轻代并且使用的是ParNew垃圾收集器。ParNew是一个Serial收集器的多线程版本,会使用多个CPU和线程完成垃圾收集工作(默认使用的线程数和CPU数相同,可以使用-XX:ParallelGCThreads参数限制)。该收集器采用复制算法回收内存,期间会停止其他工作线程,即Stop The World。

367523K->1293K(410432K):单位是KB

三个参数分别为:GC前该内存区域(这里是年轻代)使用容量,GC后该内存区域使用容量,该内存区域总容量。

0.0023988 secs:

该内存区域GC耗时,单位是秒

522739K->156516K(1322496K):

三个参数分别为:堆区垃圾回收前的大小,堆区垃圾回收后的大小,堆区总大小。

0.0025301 secs:

该内存区域GC耗时,单位是秒

[Times: user=0.04 sys=0.00, real=0.01 secs]:

分别表示用户态耗时,内核态耗时和总耗时

分析下可以得出结论:

该次GC新生代减少了367523-1293=366239K

Heap区总共减少了522739-156516=366223K

366239 – 366223 =16K,说明该次共有16K内存从年轻代移到了老年代,可以看出来数量并不多,说明都是生命周期短的对象,只是这种对象有很多。

我们需要的是尽量避免Full GC的发生,让对象尽可能的在年轻代就回收掉,所以这里可以稍微增加一点年轻代的大小,让那17K的数据也保存在年轻代中。

文章来源:https://blog.csdn.net/zc19921215/article/details/83029952

GC(Allocation Failure)相关推荐

  1. Java中GC (Allocation Failure)日志分析实战

    概述 博主在最近使用spring batch的过程当中遇到了内存容量耗尽程序崩溃的问题,于是决定将此次的内存问题分析通过本篇博客记录下来. 在分析gc日实例志之前,我们先通过一条<深入理解jav ...

  2. 频繁GC (Allocation Failure)及young gc时间过长分析

    序 本文主要分析一个频繁GC (Allocation Failure)及young gc时间过长的case. 症状 gc throughput percent逐步下降,从一般的99.96%逐步下降,跌 ...

  3. CMS 触发GC(Allocation Failure)解析之标梵信息

    针对GC中发生的"Allocation Failure",源码描述为:Allocation Failure is a cause of GC cycle to kick in. & ...

  4. GC (Allocation Failure) 那些事

    GC (Allocation Failure) 那些事 平常写Spark程序,经常看到 GC(Allocation Failure) 这个日志,大概查了查意思是是jvm在执行垃圾回收,一般情况下不影响 ...

  5. Linux page allocation failure 的问题处理 - zone_reclaim_mode

    标签 PostgreSQL , Linux , page allocation failure , 内存 背景 Linux内核分配失败,现象: 内存使用一定量后,HANG. dmesg中可能会有类似这 ...

  6. yolo v3 fatal : Memory allocation failure

    torch版的 yolov3报错: fatal   : Memory allocation failure parser.add_argument('--n_cpu', type=int, defau ...

  7. Mongodb 故障分享 初始化时errmsg : exception: new file allocation failure 并且长时间处于STARTUP2...

    Hello,大家下午好. 近几天的项目有点赶,所以耽误了更新.现在给大家分享下,在安装mongodb的过程中,遇到的故障一则.其实很小白的问题,当时遇到这个问题的时候比较心慌,浪费了很多时间,跟大家分 ...

  8. warn_alloc():page allocation failure问题分析

    关键词:warn_alloc().__GFP_XXX.order.CMA等等. 在内存申请的时候经常会遇到类似" xxx: page allocation failure: order:10 ...

  9. centos7: 启动vpp报错:Main heap allocation failure

    Main heap allocation failure! 思考许久发现自己的虚拟机内存才2G,有点小.给到了4G再启动就没问题了

最新文章

  1. python基础day4
  2. 计算机视觉及机器学习论文、源代码合集
  3. nodeMCU自动化控制实现空气质量管家
  4. boost::graph模块实现读写graphml的测试程序
  5. 【SSH异常】InvalidDataAccessApiUsageException异常
  6. 如何让Excel里显示的数字避免通过科学计数法来显示
  7. 有了 Service Mesh,还需要 API 网关吗?
  8. Gym - 100623J Just Too Lucky (数位dp)
  9. 合工大离散数学实验 油管实验
  10. 解决局域网电脑无法ping通
  11. linux飞行模式问题解决
  12. Office Web Add-in的技术原理和开发常见问题剖析
  13. 怎么发送电子邮件到别人邮箱?手把手教你!
  14. 16个Javascript的Web UI库、框架及工具包
  15. Typing for mac(打字训练工具)
  16. c++ IO多路复用
  17. [OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Reduxreact-redux状态管理详解...
  18. 计算机常用英语单词1500
  19. Cisco 7600系列Supervisor Engine 720-3BXL
  20. 毕业多年公英计算机考试,公英预测卷一

热门文章

  1. 华为数据分类管理框架及数据治理方法
  2. 猫猫学iOS之最近的反思
  3. Halcon中已知一条直线计算它的垂线与延长线
  4. 解除Excel密码保护
  5. ARP病毒网络防控实战手册
  6. Android 自定义的handler handleMessage方法不调用
  7. 2021年中国豪华车市场现状分析,豪华车成为乘用车市场增长重要驱动力「图」
  8. mysql inner join什么意思_inner join是什么意思
  9. 有了谷歌Chrome,依然离开不开微软IE
  10. HS-COOLER KK10-BCV-423 L328冷却器