当前位置: 首页 > 知识库问答 >
问题:

UseConcMarkSweepGC详细gc输出显示内存下降

越欣怡
2023-03-14

我有一个应用程序,我已经为其启用了GC日志记录。堆似乎在增长,然后突然下降,但没有记录完整的GC。如果我可以启用一些启动参数,它将显示什么GC事件正在减小堆大小?

我的环境:Linux64位,java 1.6.0_31,JavaHotSpot(TM)64位服务器VM(build 20.6-b01,混合模式)

虚拟机参数: -Server -Xms2560m -Xmx2560m -XX: 使用图标标记扫描 GC -XX:最大填充大小 =256m -XX:-打印GC -XX: -PrintGC详细信息 -XX:-PrintGC 时间戳 -Xloggc:/xxxxx/gc.log -Dsun.rmi.dgc.client.gcinterval=86400000 -Dsun.rmi.dgc.server.gcinterval=864000000

3057.609: [GC 2397254K->2385777K(2619328K), 0.0572310 secs]
3058.898: [GC 2402801K->2391301K(2619328K), 0.0566620 secs]
3059.940: [GC 2408325K->2397156K(2619328K), 0.0534080 secs]
3059.995: [GC 2397265K(2619328K), 0.0069950 secs]
3065.635: [GC 2414180K->2404934K(2619328K), 0.0732700 secs]
3065.849: [GC 2419994K(2619328K), 0.1150630 secs]
3070.248: [GC 1593931K->1591825K(2619328K), 0.1084230 secs]
3072.440: [GC 1608552K->1606431K(2619328K), 0.0533140 secs]
3087.759: [GC 1623455K->1614544K(2619328K), 0.0215850 secs]

什么事件导致堆在 3065.849 和 3070.248 的输出之间收缩?是否有 VM 参数可以记录它?我尝试添加 -verbose:gc,但这不会改变输出。

共有2个答案

毋澄邈
2023-03-14

马克的评论得到了正确的答案,我没有正确启用详细信息。现在我看到了事件:

5505.399: [GC 5505.399: [DefNew: 17273K->1942K(19136K), 0.0172730 secs] 2408937K->2393606K(2619328K), 0.0175180 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
5524.922: [GC 5524.922: [DefNew: 18948K->2111K(19136K), 0.0268990 secs] 2410612K->2395349K(2619328K), 0.0271850 secs] [Times: user=0.02 sys=0.01, real=0.03 secs]
5524.950: [GC [1 CMS-initial-mark: 2393237K(2600192K)] 2395413K(2619328K), 0.0088880 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
5524.959: [CMS-concurrent-mark-start]
5527.608: [CMS-concurrent-mark: 2.645/2.650 secs] [Times: user=2.62 sys=0.00, real=2.65 secs]
5527.609: [CMS-concurrent-preclean-start]
5527.624: [CMS-concurrent-preclean: 0.015/0.015 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
5527.625: [GC[YG occupancy: 3557 K (19136 K)]5527.625: [Rescan (non-parallel) 5527.625: [grey object rescan, 0.0065690 secs]5527.632: [root rescan, 0.0088130 secs], 0.0154260 secs]5527.641: [weak refs processing, 0.1026480 secs] [1 CMS-remark: 2393237K(2600192K)] 2396795K(2619328K), 0.1252390 secs] [Times: user=0.13 sys=0.00, real=0.13 secs]
5527.954: [CMS-concurrent-sweep-start]
5531.258: [CMS-concurrent-sweep: 3.304/3.304 secs] [Times: user=3.15 sys=0.02, real=3.30 secs]
5531.258: [CMS-concurrent-reset-start]
5531.264: [CMS-concurrent-reset: 0.006/0.006 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]  
5551.660: [GC 5551.660: [DefNew: 19135K->1234K(19136K), 0.0691830 secs] 1373830K->1357833K(2619328K), 0.0694780 secs] [Times: user=0.07 sys=0.00, real=0.07 secs]
5584.991: [GC 5584.991: [DefNew: 18257K->2111K(19136K), 0.0264920 secs] 1374857K->1360277K(2619328K), 0.0267850 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
5589.794: [GC 5589.794: [DefNew: 19135K->286K(19136K), 0.0189210 secs] 1377301K->1359264K(2619328K), 0.0191450 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
5632.424: [GC 5632.424: [DefNew: 17310K->2111K(19136K), 0.0182480 secs] 1376288K->1361326K(2619328K), 0.0185900 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
5645.086: [GC 5645.087: [DefNew: 19135K->2112K(19136K), 0.0276910 secs] 1378350K->1363056K(2619328K), 0.0279740 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]

谢了。

蓟清野
2023-03-14

GC 分两步进行

1)小收藏(主要清洁年轻一代)

2)主要收藏

我想你看到的是小收藏。本教程可以帮助您理解这些术语。

 类似资料:
  • 70.222:[GC[PSYoungGen:131072K-

  • 我试图在spring Boot2.0.2版本中实现执行器。 pom.xml中的依赖项 当我在浏览器中点击http://localhost:8082/acture/health时,我得到{“status”:“up”} 我希望得到

  • count Number size Number liveSize Number

  • 本文向大家介绍Java 堆内存与栈内存详细介绍,包括了Java 堆内存与栈内存详细介绍的使用技巧和注意事项,需要的朋友参考一下  Java 中的堆和栈 Java把内存划分成两种:一种是栈内存,一种是堆内存。 ​ 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉

  • 本文向大家介绍Hadoop MapReduce多输出详细介绍,包括了Hadoop MapReduce多输出详细介绍的使用技巧和注意事项,需要的朋友参考一下 Hadoop MapReduce多输出 FileOutputFormat及其子类产生的文件放在输出目录下。每个reducer一个文件并且文件由分区号命名:part-r-00000,part-r-00001,等等。有时可能要对输出的文件名进行控制

  • 我正在为我的大学项目开发一个电子商务网站(spring MVC、Java、mySql、Hibernate)。我有各种模型,如客户,产品,订单,客户历史等。 我能够显示所有客户的详细信息(在管理页面)和所有产品供客户浏览。 但我面临的问题是,我如何展示一个客户的订单和订单历史? 我的orders表有orderId、productId、quantity和total Price。但是要显示产品名,我必须