Long pause time of Final Mark in latest 11u shenandoah

Liang Mao maoliang.ml at alibaba-inc.com
Thu Aug 27 06:56:02 UTC 2020


Hi Shenandoah developers,

We are investigating the product version of Shenandoah GC in 11u and it showed
a good result except an unexpected behavior of long pause time in final mark
(finish queues actually). I didn't find any open discussions of this issue yet
and cannot see any suspicious points in code. Could you please help?

Below is the problematic GC information in log. Usually the final mark only took
~2 ms. The long pause time of final mark happened in a rate of ~1% in this application.
The java option is "-Xmx24g -Xms24g -XX:+UseShenandoahGC".

[2020-08-27T13:42:26.940+0800][gc            ] Trigger: Free (2451M) is below minimum threshold (2457M)
[2020-08-27T13:42:26.940+0800][gc,ergo       ] Free: 2451M, Max: 8192K regular, 1288M humongous, Frag: 47% external, 0% internal; Reserve: 1232M, Max: 8192K
[2020-08-27T13:42:26.940+0800][gc,start      ] GC(2167) Concurrent reset
[2020-08-27T13:42:26.940+0800][gc,task       ] GC(2167) Using 4 of 8 workers for concurrent reset
[2020-08-27T13:42:26.940+0800][gc,ergo       ] GC(2167) Pacer for Reset. Non-Taxable: 24576M
[2020-08-27T13:42:26.946+0800][gc            ] GC(2167) Concurrent reset 5.489ms
[2020-08-27T13:42:26.947+0800][gc,start      ] GC(2167) Pause Init Mark
[2020-08-27T13:42:26.947+0800][gc,task       ] GC(2167) Using 8 of 8 workers for init marking
[2020-08-27T13:42:26.948+0800][gc,ergo       ] GC(2167) Pacer for Mark. Expected Live: 3577M, Free: 2451M, Non-Taxable: 245M, Alloc Tax Rate: 1.8x
[2020-08-27T13:42:26.948+0800][gc            ] GC(2167) Pause Init Mark 1.093ms
[2020-08-27T13:42:26.948+0800][gc,start      ] GC(2167) Concurrent marking
[2020-08-27T13:42:26.948+0800][gc,task       ] GC(2167) Using 4 of 8 workers for concurrent marking
[2020-08-27T13:42:27.018+0800][gc            ] GC(2167) Concurrent marking 69.710ms
[2020-08-27T13:42:27.019+0800][gc,start      ] GC(2167) Pause Final Mark
[2020-08-27T13:42:27.019+0800][gc,task       ] GC(2167) Using 8 of 8 workers for final marking
[2020-08-27T13:42:27.698+0800][gc,ergo       ] GC(2167) Adaptive CSet Selection. Target Free: 3481M, Actual Free: 15270M, Max CSet: 1024M, Min Garbage: 0B
[2020-08-27T13:42:27.698+0800][gc,ergo       ] GC(2167) Collectable Garbage: 16415M (96%), Immediate: 11966M (70%), CSet: 4448M (26%)
[2020-08-27T13:42:27.699+0800][gc,ergo       ] GC(2167) Pacer for Evacuation. Used CSet: 5469M, Free: 14101M, Non-Taxable: 1410M, Alloc Tax Rate: 1.1x
[2020-08-27T13:42:27.699+0800][gc            ] GC(2167) Pause Final Mark 679.962ms
[2020-08-27T13:42:27.699+0800][gc,start      ] GC(2167) Concurrent cleanup
[2020-08-27T13:42:27.699+0800][gc            ] GC(2167) Concurrent cleanup 20942M->8984M(24576M) 0.288ms
[2020-08-27T13:42:27.699+0800][gc,ergo       ] GC(2167) Free: 14100M, Max: 8192K regular, 1288M humongous, Frag: 91% external, 0% internal; Reserve: 1231M, Max: 8192K
[2020-08-27T13:42:27.699+0800][gc,start      ] GC(2167) Concurrent evacuation
[2020-08-27T13:42:27.699+0800][gc,task       ] GC(2167) Using 4 of 8 workers for concurrent evacuation
[2020-08-27T13:42:27.879+0800][gc            ] GC(2167) Concurrent evacuation 180.091ms
[2020-08-27T13:42:27.881+0800][gc,start      ] GC(2167) Pause Init Update Refs
[2020-08-27T13:42:27.881+0800][gc,ergo       ] GC(2167) Pacer for Update Refs. Used: 10377M, Free: 13756M, Non-Taxable: 1375M, Alloc Tax Rate: 1.1x
[2020-08-27T13:42:27.881+0800][gc            ] GC(2167) Pause Init Update Refs 0.154ms
[2020-08-27T13:42:27.881+0800][gc,start      ] GC(2167) Concurrent update references
[2020-08-27T13:42:27.881+0800][gc,task       ] GC(2167) Using 4 of 8 workers for concurrent reference update
[2020-08-27T13:42:28.570+0800][gc            ] GC(2167) Concurrent update references 688.702ms[2020-08-27T13:42:28.571+0800][gc,start      ] GC(2167) Pause Final Update Refs
[2020-08-27T13:42:28.571+0800][gc,task       ] GC(2167) Using 8 of 8 workers for final reference update
[2020-08-27T13:42:28.571+0800][gc            ] GC(2167) Pause Final Update Refs 0.402ms
[2020-08-27T13:42:28.571+0800][gc,start      ] GC(2167) Concurrent cleanup
[2020-08-27T13:42:28.571+0800][gc            ] GC(2167) Concurrent cleanup 10886M->5416M(24576M) 0.156ms


[2020-08-27T13:42:28.572+0800][gc,stats      ] Pause Final Mark (G)             681245 us
[2020-08-27T13:42:28.572+0800][gc,stats      ] Pause Final Mark (N)             679951 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   Finish Queues                  678515 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   System Purge                      130 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]     Weak Roots                      129 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   Update Region States               30 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   Retire TLABs                      102 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   Choose Collection Set             197 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   Rebuild Free Set                   26 us
[2020-08-27T13:42:28.572+0800][gc,stats      ]   Initial Evacuation                893 us, parallelism: 5.36x

Thanks,
Liang


More information about the shenandoah-dev mailing list