论坛首页 Java企业应用论坛

关于CMS垃圾回收

浏览 4322 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-20   最后修改:2012-03-20

配置如下:

 

root     18509     1  1 12:33 pts/5    00:04:55 /usr/java/jdk1.7.0_02/bin/java -Xms1536m -Xmx1536m -Xmn768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:%CATALINA_HOME%/gc.log -Djava.awt.headless=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/tomcat/tomcat-8081/conf/logging.properties -Djava.endorsed.dirs=/opt/tomcat/tomcat-8081/endorsed -classpath :/opt/tomcat/tomcat-8081/bin/bootstrap.jar -Dcatalina.base=/opt/tomcat/tomcat-8081 -Dcatalina.home=/opt/tomcat/tomcat-8081 -Djava.io.tmpdir=/opt/tomcat/tomcat-8081/temp org.apache.catalina.startup.Bootstrap start

 

 

 

 

执行jmap -heap 18509获得信息:

 

Attaching to process ID 18509, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 22.0-b10

 

using parallel threads in the new generation.

using thread-local object allocation.

Concurrent Mark-Sweep GC

 

Heap Configuration:

   MinHeapFreeRatio = 40

   MaxHeapFreeRatio = 70

   MaxHeapSize      = 1610612736 (1536.0MB)

   NewSize          = 805306368 (768.0MB)

   MaxNewSize       = 805306368 (768.0MB)

   OldSize          = 5439488 (5.1875MB)

   NewRatio         = 2

   SurvivorRatio    = 8

   PermSize         = 134217728 (128.0MB)

   MaxPermSize      = 268435456 (256.0MB)

 

Heap Usage:

New Generation (Eden + 1 Survivor Space):

   capacity = 724828160 (691.25MB)

   used     = 467664152 (445.9992904663086MB)

   free     = 257164008 (245.2507095336914MB)

   64.52069301501751% used

Eden Space:

   capacity = 644349952 (614.5MB)

   used     = 467664152 (445.9992904663086MB)

   free     = 176685800 (168.5007095336914MB)

   72.57921732568082% used

From Space:

   capacity = 80478208 (76.75MB)

   used     = 0 (0.0MB)

   free     = 80478208 (76.75MB)

   0.0% used

To Space:

   capacity = 80478208 (76.75MB)

   used     = 0 (0.0MB)

   free     = 80478208 (76.75MB)

   0.0% used

concurrent mark-sweep generation:

   capacity = 805306368 (768.0MB)

   used     = 177873944 (169.6338119506836MB)

   free     = 627432424 (598.3661880493164MB)

   22.087735931078594% used

Perm Generation:

   capacity = 238534656 (227.484375MB)

   used     = 141940168 (135.36469268798828MB)

   free     = 96594488 (92.11968231201172MB)

   59.505050704246514% used

 

 

 

 

jstat 跟踪的情况是这样的:

jstat -gc 18509 2000

 

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC	PU	    YGC   YGCT    FGC    FGCT     GCT  
78592.0 78592.0  0.0   5077.9 629248.0 568460.9  786432.0   171488.5  233136.0 140324.3     33    1.672  11      9.999   11.671
78592.0 78592.0  0.0   5077.9 629248.0 569044.4  786432.0   171488.5  233136.0 140324.3     33    1.672  11      9.999   11.671
78592.0 78592.0  0.0   5077.9 629248.0 569044.4  786432.0   171488.5  233136.0 140324.3     33    1.672  11      9.999   11.671
78592.0 78592.0  0.0   5077.9 629248.0 596179.3  786432.0   171488.5  233136.0 140325.1     33    1.672  12      9.999   11.671
78592.0 78592.0  0.0    0.0   629248.0 31965.2   786432.0   179646.8  233692.0 140214.0     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0 39723.2   786432.0   179646.8  233692.0 140214.0     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0 40560.0   786432.0   179646.8  233692.0 140214.0     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0 40562.0   786432.0   179646.8  233692.0 140214.0     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0 40739.1   786432.0   179646.8  233692.0 140214.0     33    1.672  12     11.064   12.736





 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC	PU	    YGC   YGCT    FGC    FGCT     GCT  
78592.0 78592.0  0.0    0.0   629248.0 459223.4  786432.0   179646.8  233692.0 140254.9     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0 460525.9  786432.0   179646.8  233692.0 140254.9     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0 460544.2  786432.0   179646.8  233692.0 140254.9     33    1.672  12     11.064   12.736
78592.0 78592.0  0.0    0.0   629248.0  3875.6   786432.0   179488.5  233884.0 140248.7     33    1.672  13     12.000   13.672
78592.0 78592.0  0.0    0.0   629248.0  4699.8   786432.0   179488.5  233884.0 140248.7     33    1.672  13     12.000   13.672
 

 注意jstat第3行和第4行了,做了一次fullgc,为什么会导致fullgc,求解。

   发表时间:2012-03-20  
rmi引发?
0 请登录后投票
   发表时间:2012-03-22  
btrace了一下,定位到问题是系统中做了Excel输出,用了jxl库,调用jxl库WritableWorkbook关闭的时候,默认做了System.gc()。
还好官方在创建WritableWorkbook的时候提供了setting选项,可以关闭之。
0 请登录后投票
   发表时间:2012-03-23  
System.gc()触发Fgc的时候都会有个(System)字段,看到这个就可以推断到底是自己的代码还是第三方类库的问题了
0 请登录后投票
   发表时间:2012-03-23   最后修改:2012-03-23

[quote="richard_2010"]System.gc()触发Fgc的时候都会有个(System)字段,看到这个就可以推断到底是自己的代码还是第三方类库的问题了[/quote]

 

这个不太确切,我在一个JSP里面这样写了:

 

<%
			System.gc();
			out.println("System.gc();1<br/>");
%>
 

执行上面的jsp后,后面的gc log是这样的:

 

149.389: [Full GC (System) 149.389: [CMS: 55401K->55419K(262144K), 0.5848093 secs] 57421K->55419K(498112K), [CMS Perm : 57888K->57888K(131072K)], 0.5850461 secs]
0 请登录后投票
   发表时间:2012-03-26  
aya331 写道

 

执行上面的jsp后,后面的gc log是这样的:

 

149.389: [Full GC (System) 149.389: [CMS: 55401K->55419K(262144K), 0.5848093 secs] 57421K->55419K(498112K), [CMS Perm : 57888K->57888K(131072K)], 0.5850461 secs]

 

这不是有(System)字段么?

可能你误解我的意思了,

我的意思是如果有(System)字段,你可以用关键词搜索你的代码看有没显示调用System.gc(),then……

0 请登录后投票
   发表时间:2012-03-26  
richard_2010 写道
aya331 写道

 

执行上面的jsp后,后面的gc log是这样的:

 

149.389: [Full GC (System) 149.389: [CMS: 55401K->55419K(262144K), 0.5848093 secs] 57421K->55419K(498112K), [CMS Perm : 57888K->57888K(131072K)], 0.5850461 secs]

 

这不是有(System)字段么?

可能你误解我的意思了,

我的意思是如果有(System)字段,你可以用关键词搜索你的代码看有没显示调用System.gc(),then……


嗯嗯,我误解你了~~
0 请登录后投票
   发表时间:2012-03-27  
小好奇,不知道楼主用的BTrace脚本是怎样的?
我以前用过的脚本是这样的:https://gist.github.com/2000950/37b0095b1edbb7d4a43cc5b39cbe148c8184d3aa#file_trace_system_gc_call.java
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics