Re: Heap size slowly grows in jdk11u Shenandoah passive mode

Yude Lin yude.lyd at alibaba-inc.com
Tue May 25 05:19:49 UTC 2021


Hi Zhengyu,

Yes, I confirm this solves the issue. The fix looks good to me. Thanks!

Yude



------------------------------------------------------------------
From:Zhengyu Gu <zgu at redhat.com>
Send Time:2021年5月24日(星期一) 20:47
To:林育德(御德) <yude.lyd at alibaba-inc.com>; shenandoah-dev <shenandoah-dev at openjdk.java.net>
Subject:Re: Heap size slowly grows in jdk11u Shenandoah passive mode

Hi Yude,

Here is the fix: http://cr.openjdk.java.net/~zgu/JDK-8267561/webrev.00/

Could you verify it?

Thanks,

-Zhengyu

On 5/21/21 5:33 PM, Zhengyu Gu wrote:
> Hi Yude,
> 
> Thanks for reporting and confirming. I found the root cause [1], it only 
> affect 11u, as 16u and 17 we switched to concurrent reference processing.
> 
> 
> -Zhengyu
> 
> 
> [1] https://bugs.openjdk.java.net/browse/JDK-8267561
> 
> 
> On 5/21/21 12:42 AM, Yude Lin wrote:
>> Hi Zhengyu,
>>
>> I tried -XX:ShenandoahUnloadClassesFrequency=1 but I still get the 
>> same symptom.
>> I checked the log and it has "Unload Classes" every cycle, so 
>> unloading is on. Any ideas?
>> Thanks!
>>
>> Yude
>>
>>     ------------------------------------------------------------------
>>     From:Zhengyu Gu <zgu at redhat.com>
>>     Send Time:2021年5月20日(星期四) 23:30
>>     To:林育德(御德) <yude.lyd at alibaba-inc.com>; shenandoah-dev
>>     <shenandoah-dev at openjdk.java.net>
>>     Subject:Re: Heap size slowly grows in jdk11u Shenandoah passive mode
>>
>>     Hi,
>>
>>     This may be due to class unloading. Shenandoah/jdk11u, by default,
>>     unloads classes every 100 cycles, while jdk16/17 unloads classes
>>     (concurrently) every cycle.
>>
>>     You may want to try: -XX:ShenandoahUnloadClassesFrequency=1
>>
>>     -Zhengyu
>>
>>     On 5/20/21 1:17 AM, 林育德(御德) wrote:
>>      >
>>      >
>>      > Hi,
>>      >
>>      
>> > I was running jdk11u Shenandoah on specjvm2008, and found the passive mode has a leak-like behaviour: 
>>
>>      >
>>      
>> > $java -Xmx24g -Xms24g -XX:ParallelGCThreads=1 -XX:+UseShenandoahGC -XX:+UnlockDiagnosticVMOptions -XX:ShenandoahGCMode=passive -Xlog:gc*=debug:file=512sp.log -jar SPECjvm2008.jar -ict -coe -i 1 derby 
>>
>>      >
>>      > $grep 'Pause .*ms' 512sp.log
>>      
>> > [63.407s][info ][gc             ] GC(0) Pause Degenerated GC (Outside of Cycle) 23344M->15824M(24576M) 6994.533ms 
>>
>>      
>> > [71.029s][info ][gc             ] GC(1) Pause Degenerated GC (Outside of Cycle) 23343M->15520M(24576M) 7325.687ms 
>>
>>      
>> > [80.319s][info ][gc             ] GC(2) Pause Degenerated GC (Outside of Cycle) 23343M->11720M(24576M) 8721.156ms 
>>
>>      
>> > [88.396s][info ][gc             ] GC(3) Pause Degenerated GC (Outside of Cycle) 23343M->4176M(24576M) 7549.126ms 
>>
>>      
>> > [94.300s][info ][gc             ] GC(4) Pause Degenerated GC (Outside of Cycle) 23343M->4192M(24576M) 5216.467ms 
>>
>>      
>> > [99.941s][info ][gc             ] GC(5) Pause Degenerated GC (Outside of Cycle) 23343M->4200M(24576M) 4984.741ms 
>>
>>      
>> > [105.506s][info ][gc             ] GC(6) Pause Degenerated GC (Outside of Cycle) 23343M->4208M(24576M) 4901.316ms 
>>
>>      
>> > [111.339s][info ][gc             ] GC(7) Pause Degenerated GC (Outside of Cycle) 23343M->4216M(24576M) 5175.875ms 
>>
>>      
>> > [117.154s][info ][gc             ] GC(8) Pause Degenerated GC (Outside of Cycle) 23343M->4224M(24576M) 5134.298ms 
>>
>>      
>> > [123.078s][info ][gc             ] GC(9) Pause Degenerated GC (Outside of Cycle) 23343M->4232M(24576M) 5255.877ms 
>>
>>      
>> > [129.249s][info ][gc             ] GC(10) Pause Degenerated GC (Outside of Cycle) 23343M->4232M(24576M) 5505.492ms 
>>
>>      
>> > [135.258s][info ][gc             ] GC(11) Pause Degenerated GC (Outside of Cycle) 23343M->4240M(24576M) 5355.191ms 
>>
>>      
>> > [141.378s][info ][gc             ] GC(12) Pause Degenerated GC (Outside of Cycle) 23343M->4248M(24576M) 5487.325ms 
>>
>>      
>> > [147.217s][info ][gc             ] GC(13) Pause Degenerated GC (Outside of Cycle) 23343M->4256M(24576M) 5214.325ms 
>>
>>      
>> > [152.963s][info ][gc             ] GC(14) Pause Degenerated GC (Outside of Cycle) 23343M->4264M(24576M) 5083.129ms 
>>
>>      
>> > [158.798s][info ][gc             ] GC(15) Pause Degenerated GC (Outside of Cycle) 23343M->4272M(24576M) 5162.959ms 
>>
>>      
>> > [164.950s][info ][gc             ] GC(16) Pause Degenerated GC (Outside of Cycle) 23343M->4280M(24576M) 5475.542ms 
>>
>>      
>> > [170.856s][info ][gc             ] GC(17) Pause Degenerated GC (Outside of Cycle) 23343M->4288M(24576M) 5222.228ms 
>>
>>      
>> > [177.007s][info ][gc             ] GC(18) Pause Degenerated GC (Outside of Cycle) 23343M->4304M(24576M) 5300.388ms 
>>
>>      
>> > [182.809s][info ][gc             ] GC(19) Pause Degenerated GC (Outside of Cycle) 23343M->4312M(24576M) 4833.105ms 
>>
>>      
>> > [189.589s][info ][gc             ] GC(20) Pause Degenerated GC (Outside of Cycle) 23344M->4312M(24576M) 5441.911ms 
>>
>>      
>> > [195.528s][info ][gc             ] GC(21) Pause Degenerated GC (Outside of Cycle) 23343M->4320M(24576M) 5262.478ms 
>>
>>      
>> > [201.654s][info ][gc             ] GC(22) Pause Degenerated GC (Outside of Cycle) 23343M->4328M(24576M) 5491.649ms 
>>
>>      
>> > [208.601s][info ][gc             ] GC(23) Pause Degenerated GC (Outside of Cycle) 23343M->4336M(24576M) 6293.675ms 
>>
>>      
>> > [214.483s][info ][gc             ] GC(24) Pause Degenerated GC (Outside of Cycle) 23343M->4344M(24576M) 5259.813ms 
>>
>>      
>> > [220.657s][info ][gc             ] GC(25) Pause Degenerated GC (Outside of Cycle) 23343M->4352M(24576M) 5533.361ms 
>>
>>      
>> > [227.005s][info ][gc             ] GC(26) Pause Degenerated GC (Outside of Cycle) 23343M->4352M(24576M) 5712.247ms 
>>
>>      
>> > [233.210s][info ][gc             ] GC(27) Pause Degenerated GC (Outside of Cycle) 23343M->4368M(24576M) 5580.975ms 
>>
>>      
>> > [239.202s][info ][gc             ] GC(28) Pause Degenerated GC (Outside of Cycle) 23343M->4368M(24576M) 5379.766ms 
>>
>>      
>> > [245.565s][info ][gc             ] GC(29) Pause Degenerated GC (Outside of Cycle) 23343M->4376M(24576M) 5714.096ms 
>>
>>      
>> > [251.450s][info ][gc             ] GC(30) Pause Degenerated GC (Outside of Cycle) 23343M->4384M(24576M) 5250.005ms 
>>
>>      
>> > [257.447s][info ][gc             ] GC(31) Pause Degenerated GC (Outside of Cycle) 23343M->4392M(24576M) 5354.806ms 
>>
>>      
>> > [263.840s][info ][gc             ] GC(32) Pause Degenerated GC (Outside of Cycle) 23343M->4400M(24576M) 5716.993ms 
>>
>>      
>> > [270.792s][info ][gc             ] GC(33) Pause Degenerated GC (Outside of Cycle) 23343M->4408M(24576M) 6264.228ms 
>>
>>      
>> > [277.201s][info ][gc             ] GC(34) Pause Degenerated GC (Outside of Cycle) 23343M->4408M(24576M) 5743.778ms 
>>
>>      
>> > [283.828s][info ][gc             ] GC(35) Pause Degenerated GC (Outside of Cycle) 23343M->4416M(24576M) 5973.385ms 
>>
>>      
>> > [291.227s][info ][gc             ] GC(36) Pause Degenerated GC (Outside of Cycle) 23343M->4424M(24576M) 6587.729ms 
>>
>>      
>> > [298.153s][info ][gc             ] GC(37) Pause Degenerated GC (Outside of Cycle) 23343M->4432M(24576M) 6122.285ms 
>>
>>      
>> > [304.722s][info ][gc             ] GC(38) Pause Degenerated GC (Outside of Cycle) 23343M->4440M(24576M) 5938.363ms 
>>
>>      
>> > [311.097s][info ][gc             ] GC(39) Pause Degenerated GC (Outside of Cycle) 23343M->4448M(24576M) 5737.377ms 
>>
>>      
>> > [317.710s][info ][gc             ] GC(40) Pause Degenerated GC (Outside of Cycle) 23343M->4448M(24576M) 5994.975ms 
>>
>>      
>> > [323.969s][info ][gc             ] GC(41) Pause Degenerated GC (Outside of Cycle) 23343M->4456M(24576M) 5624.046ms 
>>
>>      
>> > [330.910s][info ][gc             ] GC(42) Pause Degenerated GC (Outside of Cycle) 23343M->4464M(24576M) 6298.006ms 
>>
>>      
>> > [337.761s][info ][gc             ] GC(43) Pause Degenerated GC (Outside of Cycle) 23343M->4472M(24576M) 6248.352ms 
>>
>>      
>> > [344.369s][info ][gc             ] GC(44) Pause Degenerated GC (Outside of Cycle) 23343M->4480M(24576M) 5947.428ms 
>>
>>      
>> > [351.096s][info ][gc             ] GC(45) Pause Degenerated GC (Outside of Cycle) 23343M->4488M(24576M) 6094.857ms 
>>
>>      
>> > [357.776s][info ][gc             ] GC(46) Pause Degenerated GC (Outside of Cycle) 23343M->4496M(24576M) 6048.758ms 
>>
>>      
>> > [364.830s][info ][gc             ] GC(47) Pause Degenerated GC (Outside of Cycle) 23343M->4504M(24576M) 6418.273ms 
>>
>>      
>> > [370.804s][info ][gc             ] GC(48) Pause Degenerated GC (Outside of Cycle) 23343M->4512M(24576M) 5348.577ms 
>>
>>      
>> > [376.787s][info ][gc             ] GC(49) Pause Degenerated GC (Outside of Cycle) 23344M->4520M(24576M) 5339.928ms 
>>
>>      
>> > [383.407s][info ][gc             ] GC(50) Pause Degenerated GC (Outside of Cycle) 23343M->4528M(24576M) 5942.465ms 
>>
>>      
>> > [389.858s][info ][gc             ] GC(51) Pause Degenerated GC (Outside of Cycle) 23343M->4536M(24576M) 5801.355ms 
>>
>>      
>> > [396.714s][info ][gc             ] GC(52) Pause Degenerated GC (Outside of Cycle) 23343M->4544M(24576M) 6190.560ms 
>>
>>      
>> > [403.752s][info ][gc             ] GC(53) Pause Degenerated GC (Outside of Cycle) 23343M->4560M(24576M) 6226.817ms 
>>
>>      
>> > [410.816s][info ][gc             ] GC(54) Pause Degenerated GC (Outside of Cycle) 23343M->4560M(24576M) 6400.091ms 
>>
>>      
>> > [417.651s][info ][gc             ] GC(55) Pause Degenerated GC (Outside of Cycle) 23343M->4568M(24576M) 6206.848ms 
>>
>>      
>> > [424.040s][info ][gc             ] GC(56) Pause Degenerated GC (Outside of Cycle) 23343M->4576M(24576M) 5774.497ms 
>>
>>      
>> > [431.115s][info ][gc             ] GC(57) Pause Degenerated GC (Outside of Cycle) 23343M->4584M(24576M) 6433.645ms 
>>
>>      
>> > [437.740s][info ][gc             ] GC(58) Pause Degenerated GC (Outside of Cycle) 23343M->4592M(24576M) 5980.660ms 
>>
>>      >
>>      >
>>      >
>>      
>> > The heap seems to grow slowly, and the pause time tends to grow too.
>>      
>> > The jdk16 or 17 version appears okay (with constant after-gc heap size). 
>>
>>      >
>>      > I wonder if there is a known reason?
>>      >
>>      > Thanks!
>>      >
>>      > Yude Lin
>>      >



More information about the shenandoah-dev mailing list