Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Deleted user
0 / 0 points
Next:
badges earned

Your Points Tracker
Challenges
Leaderboard
  • Global
  • Feed

Badge for your thoughts?

You're enrolled in our new beta rewards program. Join our group to get the inside scoop and share your feedback.

Join group
Recognition
Give the gift of kudos
You have 0 kudos available to give
Who do you want to recognize?
Why do you want to recognize them?
Kudos
Great job appreciating your peers!
Check back soon to give more kudos.

Past Kudos Given
No kudos given
You haven't given any kudos yet. Share the love above and you'll see it here.

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Shenondoah GC myth or reality on the production ?

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.)

 

 Let’s start. 

  • All, my JDK. JRE used in the located in one place, like /usr/java and use frequently the symbolic links.

image.png

wget -c https://builds.shipilev.net/openjdk-shenandoah-jdk8/openjdk-shenandoah-jdk8-latest-linux-x86_64-release.tar.xz

  • Next step is extract into  
tar -xvf openjdk-shenandoah-jdk8-latest-linux-x86_64-release.tar.xz
  • Before change link let’s prepare our Jira instance. 
  1. Commented arguments, (about that arguments you can read here Flight Recorder)image.png

  2. JVM_SUPPORT_RECOMMENDED_ARGS="-XX:+UnlockCommercialFeatures -XX:+FlightRecorder"
  1. So let’s check my previous GC Strategy:
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.2. Added

-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC

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)

  • Let’s run that easy pipeline command:
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)

 

That’s all.

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.

 

References:



Cheers,

Gonchik Tsymzhitov

2 comments

Mohammed Amine Community Leader Oct 04, 2020

thank you @Gonchik Tsymzhitov 

Like Gonchik Tsymzhitov likes this

@Mohammed Amine  You're welcome. 

Did you work on that? 

I like that GC. 

Comment

Log in or Sign up to comment
TAGS
Community showcase

The benefits of using Jira in different departments

Jira is a great tool to use across different departments. Forget that paperwork – switch to Jira and get that tasks done smoothly. Marketing Jira allows for a complete digital transformation of you...

93 views 0 5
Read article

Community Events

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

Events near you