Profile Image
Paul Arbour

young GC takes so much time to cleanup

Any ideas why the young GC takes so much time to cleanup?

 

Report URL - https://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMjIvMDMvNC8tLWdjLmxvZy4wLmN1cnJlbnQtLTE1LTU3LTQy&channel=WEB

  • younggc

  • longyounggcpauses

  • parallelgcalgorithm

  • cmsalgorithm

  • gctuningoptimization

Please Sign In or to post your comment or answer

Profile Image

Ram Lakshmanan

Hello Paul!

 

 Greetings.

 

 

Your KPIs are looking good. Your GC throughput is 99.79%, Avg GC Pause time is 206ms and max GC pause time is 530ms, which are good metrics. However there is always room for optimization.

 

 

 

 

 

Above is your GC pause duration graph. Inorder to bring down your young GC pause time, you may try couple of things:

 

a. Currently you are using Parallel GC algorithm for young generation, where as for other generations you are using CMS. May be you can just try using CMS algorithm for all generations. You can do so by removing '-XX:+UseParNewGC'

 

b. YOu can also try one more thing. Currently young gen size is 1GB and old gen size is 2GB. Can you try reducing young gen size to may be 512mb? Currently you have set your '-XX:NewRatio' to 2. Instead if you can make it as 3 i.e. '-XX:NewRatio=3' young gen size will become 512mb. It has potential to reduce young gen pause time. It's because if young generation size is small, less number of objects has to be evicted from the memory. Thus, pause time can also get reduced.

 

c. I would also remove '-XX:MaxTenuringThreshold=6' so that objects will be promoted sooner to old generation.

 

 Don't do all the 3 settings changes in one go. Do one change first, study the performance then continue to try other settings.

 

You may find this GC tuning & optimization video clip helpful.

Got something else on mind? Post Your Question

Not the answer you're looking for? Browse other questions tagged
  • younggc

  • longyounggcpauses

  • parallelgcalgorithm

  • cmsalgorithm

  • gctuningoptimization