<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Vm option :<br>
<font size="2"><span style="font-size: 10pt;">-Xmx49152m -Xms49152m -Xmn1024m -Xss256k -XX:MaxDirectMemorySize=1024m
</span></font>-XX:&#43;UseConcMarkSweepGC -XX:&#43;CMSDumpAtPromotionFailure -XX:&#43;UseGCLogFileRotation -XX:NumberOfGCLogFiles=100 -XX:GCLogFileSize=128m
<font size="2"><span style="font-size: 10pt;">-Xloggc:/home/work/log/hbase/ggsrv-miliao/regionserver/regionserver_gc.log
</span></font>...<br>
<br>
$java -version<br>
java version &quot;1.6.0_37&quot;<br>
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)<br>
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)<br>
<br>
After a promotion failure, there's an expected dump, but there're two more things catch my eye :<br>
1) the dumped gc log size was not limited by GCLogFileSize parameter<br>
<br>
-rw-rw-r-- 1 work work 2.7K Dec 20 12:12 regionserver_gc.log.2<br>
-rw-rw-r-- 1 work work <span style="font-weight: bold;">11499056168</span> Dec 20 12:12 regionserver_gc.log.1<br>
-rw-rw-r-- 1 work work&nbsp; 77K Dec 20 16:21 regionserver_gc.log.0<br>
<br>
Looked into current codebase, seems the gc log rolling is triggered in SafepointSynchronize::do_cleanup_tasks() only, if we have huge dump info be written during a vm operation, the GCLogFileSize limit is breakable<br>
<br>
2) Another weird problem is the PrintSafepointStatistics output :<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vmop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [threads: total initially_running wait_to_block]&nbsp;&nbsp;&nbsp; [time: spin block sync cleanup vmop] page_trap_count<br>
158282.484: GenCollectForAllocation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp;&nbsp; 325&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp; 113&nbsp;&nbsp;&nbsp; ]&nbsp; 0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vmop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [threads: total initially_running wait_to_block]&nbsp;&nbsp;&nbsp; [time: spin block sync cleanup vmop] page_trap_count<br>
158283.141: GenCollectForAllocation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp;&nbsp; 325&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp; 112&nbsp;&nbsp;&nbsp; ]&nbsp; 0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vmop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [threads: total initially_running wait_to_block]&nbsp;&nbsp;&nbsp; [time: spin block sync cleanup vmop] page_trap_count<br>
158283.766: GenCollectForAllocation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp;&nbsp; 325&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-weight: bold;">2543271&nbsp;&nbsp;&nbsp; </span>]&nbsp; 0<br>
<br>
I could see 4 fields only at the last line, not 5, i'm a little comfusued: )<br>
</div>
</body>
</html>