Troubles with Shenandoah

Simone Bordet simone.bordet at gmail.com
Sun Apr 7 12:41:28 UTC 2019


Hi,

using 12-testing+0-builds.shipilev.net-openjdk-jdk12-b157-20190406-jdk-1233jdk-12-ga.

I'm running the CometD benchmark
(https://docs.cometd.org/current/reference/#_benchmarking), which is
basically a messaging web application running in Jetty.

Running the benchmark with Shenandoah, I don't have crashes or
exceptions on the server, but many messages are not relayed back to
the clients.

I suspect there is something wrong with Shenandoah because the
benchmark succeeds with G1 and ZGC on 20+ minutes runs, but fails with
Shenandoah with just 1 minute runs - the only change is the GC I'm
using.

I have 2 questions:

A) is the version I'm using a "stable" enough version (it's this one:
https://builds.shipilev.net/openjdk-jdk12/openjdk-jdk12-latest-linux-x86_64-release.tar.xz)
B) is there any command line option that I can set to make Shenandoah
verify that it's doing the job correctly? Or maybe use some debug
version of Shenandoah that could help identify if there is an issue?

I will happily re-run the benchmark with your suggestions.

Thanks!

----
-XX:InitialHeapSize=17179869184 -XX:MaxHeapSize=51539607552
-XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240
-XX:+SegmentedCodeCache -XX:+UnlockExperimentalVMOptions
-XX:+UseShenandoahGC
[2019-04-07T06:45:36.007-0500][info][gc] Consider
-XX:+ClassUnloadingWithConcurrentMark if large pause times are
observed on class-unloading sensitive workloads
[2019-04-07T06:45:36.010-0500][info][gc,init] Regions: 3072 x 16384K
[2019-04-07T06:45:36.010-0500][info][gc,init] Humongous object threshold: 16384K
[2019-04-07T06:45:36.010-0500][info][gc,init] Max TLAB size: 16384K
[2019-04-07T06:45:36.010-0500][info][gc,init] GC threads: 23 parallel,
23 concurrent
[2019-04-07T06:45:36.010-0500][info][gc,init] Reference processing: parallel
[2019-04-07T06:45:36.010-0500][info][gc     ] Heuristics ergonomically
sets -XX:+ExplicitGCInvokesConcurrent
[2019-04-07T06:45:36.010-0500][info][gc     ] Heuristics ergonomically
sets -XX:+ShenandoahImplicitGCInvokesConcurrent
[2019-04-07T06:45:36.010-0500][info][gc,init] Shenandoah heuristics: adaptive
[2019-04-07T06:45:36.012-0500][info][gc,ergo] Pacer for Idle. Initial:
983M, Alloc Tax Rate: 1.0x
[2019-04-07T06:45:36.012-0500][info][gc,init] Initialize Shenandoah
heap with initial size 16384M
[2019-04-07T06:45:36.012-0500][info][gc,init] Safepointing mechanism:
global-page poll
[2019-04-07T06:45:36.012-0500][info][gc     ] Using Shenandoah

--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


More information about the shenandoah-dev mailing list