Shenandoah performance
Frédéric Poliquin
Frederic.Poliquin at dti.ulaval.ca
Tue Oct 6 17:55:44 UTC 2020
Hello,
I'm not sure if I am writing at the right place but I'll give it a go.
We have this legacy web application developped with Oracle ADF which is very memory intensive. We are currently using G1. The application is stable as long as the CPU is under 40 %. If the load exceeds this limit, we can experience « stop the world » collections that can last above 1 minute which is unacceptable.
We recently tried Shenandoah but was disappointed by the performance. The CPU is generally 10 to 20 % higher and when the load exceeds 50 %, we experience « stop the world » collections that last for 5 to 7 seconds many times per minute which leads to very poor response time.
We use 20 pods deployed on OpenShift running a custom Docker image based on Fedora with the Fedora Java 8 build.
Here are the settings for G1 :
-server -XX:+UseG1GC -XX:+UseStringDeduplication -Xms2G -Xmx3G
Here are the settings for Shenandoah :
-server -XX:+UseShenandoahGC -Xms2G -Xmx3G
Is there any recommandation or best practice that we could use, any advice, is this a normal behavior for Shenandoah ?
I always tried to keep the heap as small as possible but should we increase resource allocation and reduce the number of pods ?
Any help would be appreciated.
Thank you.
Frédéric Poliquin
More information about the shenandoah-dev
mailing list