Hi awesome community,
Today I would like to share with you so small topic about usage Garbage Collectors in production (GC Strategies).
At the moment, most popular in Hotspot JVM is G1 GC, after CMS and rising star is Shenandoah GC.
So in this topic I will describe how to migrate to Shenandoah GC. If you already on adoptJDK.
And please, keep in your mind that small tutorial related to the Java 8, as my instance is not fully ready for new Java. (But please, be informed in your version Java works better and Shenandoah significantly improved as well.)
wget -c https://builds.shipilev.net/openjdk-shenandoah-jdk8/openjdk-shenandoah-jdk8-latest-linux-x86_64-release.tar.xz
tar -xvf openjdk-shenandoah-jdk8-latest-linux-x86_64-release.tar.xz
JVM_GC_STRATEGY="-server -Xss2048k -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics -XX:ConcGCThreads=8 -XX:ParallelGCThreads=24 -XX:ReservedCodeCacheSize=1024m -XX:+ExplicitGCInvokesConcurrent -XX:MaxMetaspaceSize=2048m"
2.1. Hence I removed the next parameters (it’s result of GC, thread, heap dump analysis tools analyzing):
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ConcGCThreads=8 -XX:ParallelGCThreads=24
2.3. Finally, GC Strategy is:
JVM_GC_STRATEGY="-server -Xss2048k -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics -XX:MaxMetaspaceSize=2048m -XX:ReservedCodeCacheSize=1024m -XX:+ExplicitGCInvokesConcurrent "
About String Deduplication you can read here (Decrease Heap size)
systemctl stop jira && unlink latest && ln -s j2sdk-image latest && systemctl start jira
As result in a few minutes you see in your logs that in need full info. (and Jira visible through browser)
Conclusion: Shenandoah has interesting extra options, but in my tests it was hard to understand a significant differences. But the default one,
Hope it helps.
If you interested I can share in the some metrics and charts of using Shenondoah and G1.
I have multiple projects that use variations of the same base workflow. The variations depend on the requirements of the project or issue type. The variations mostly come in the form of new statuses ...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events