Vladimir
Vladimir

Reputation: 425

GC pauses of 5 seconds but mark, sweep and compact take less than 1 second

I have an AIX server running a JVM process with 8 GB heap using gencon GC policy. Today I had 5s pause time which is concerning. I looked at the event in the GC log but couldn't figure out where all that time is spent.

<con event="collection" id="1" timestamp="Oct 22 13:34:10 2015" intervalms="0.000">   <time exclusiveaccessms="0.195" />   <nursery freebytes="871692288" totalbytes="966367232" percent="90" />   <tenured freebytes="375809024" totalbytes="7516192768" percent="4" >
    <soa freebytes="0" totalbytes="7140383744" percent="0" />
    <loa freebytes="375809024" totalbytes="375809024" percent="100" />   </tenured>   <stats tracetarget="2430736896">
    <traced total="2804446392" mutators="2591437504" helpers="213008888" percent="115" />
    <cards cleaned="1874" kickoff="102056216" />   </stats>   <con event="remembered set scan">
    <stats objectsfound="17649" traced="110458224" timetakenms="129.797" />   </con>   <con event="final card cleaning">
    <stats cardscleaned="334" traced="9118008" durationms="7.732" />   </con>   <gc type="global" id="1" totalid="929" intervalms="0.000">
    <classloadersunloaded count="162267" timetakenms="4957.805" />
    <refs_cleared soft="1942" threshold="32" weak="164659" phantom="0" />
    <finalization objectsqueued="120" />
    ***<timesms mark="258.390" sweep="33.125" compact="0.000" total="5267.373" />***
    <nursery freebytes="904360200" totalbytes="966367232" percent="93" />
    <tenured freebytes="3848182720" totalbytes="7516192768" percent="51" >
      <soa freebytes="3472373696" totalbytes="7140383744" percent="48" />
      <loa freebytes="375809024" totalbytes="375809024" percent="100" />
    </tenured>   </gc>   <nursery freebytes="904360200" totalbytes="966367232" percent="93" />   <tenured freebytes="3848182720" totalbytes="7516192768" percent="51" >
    <soa freebytes="3472373696" totalbytes="7140383744" percent="48" />
    <loa freebytes="375809024" totalbytes="375809024" percent="100" />   </tenured>   <time totalms="5406.538" /> </con>

How can I find which activity part of the full GC is taking the bulk of the pause time?

Thanks

Upvotes: 2

Views: 1274

Answers (2)

Nemanja
Nemanja

Reputation: 1171

Time taken for scan of class loaders is not accounted for in total:

<classloadersunloaded count="162267" timetakenms="4957.805" />

You have 162267 class loaders in memory taking 4957.805ms to scan. This seems to be known problem, workaround and fix are here: http://www-01.ibm.com/support/docview.wss?uid=swg1IZ76742

Upvotes: 3

Jon Thoms
Jon Thoms

Reputation: 10739

You don't have any sample GC logs attached but based on your description, you're running the CMS collector. Long pauses are often caused by a full GC which happens sometimes with this collector - it's just mostly concurrent. I would suggest uploading some sample GC logs during the problematic times and also check out this article called 'Understanding CMS GC Logs'.

Upvotes: 1

Related Questions