mirror of
https://github.com/nubenetes/awesome-kubernetes.git
synced 2026-05-22 00:53:37 +00:00
4.4 KiB
4.4 KiB
| JVM Parameters | Enable? | References / Details |
|---|---|---|
| -XX:+UseG1GC | Enabled by default in Java 8u191+ | Most important defaults specific to G1 and their default values. https://dzone.com/articles/choosing-the-right-gc https://wiki.openjdk.org/spaces/HotSpot/pages/24674441/G1GC+Feedback Alternative: Shenandoah GC |
| -XX:+UseShenandoahGC | Alternative to G1GC. | Shenandoah Garbage Collector: experimental in Java 8, newer than G1GC, available in some OpenJDK 8 and newer releases. https://wiki.openjdk.org/spaces/shenandoah/pages/25002018/Main https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1 |
| -XX:+UseZGC | Yes (JDK 11+) | Z GC : Better Garbage Collector Algorithm than G1 or Shenandoah. JDK 11+ required. The Z Garbage Collector, also known as ZGC, is a scalable low latency garbage collector designed to meet the following goals: · Pause times do not exceed 10ms (*) · Pause times do not increase with the heap or live-set size · Handle heaps ranging from a 8MB to 16TB in size At a glance, ZGC is: · Concurrent · Region-based · Compacting · NUMA-aware · Using colored pointers · Using load barriers At its core, ZGC is a concurrent garbage collector, meaning all heavy lifting work is done while Java threads continue to execute. This greatly limits the impact garbage collection will have on your application's response time. 7 JVM Arguments of Highly Effective Applications https://wiki.openjdk.org/spaces/zgc/pages/34668579/Main |
| -XshowSettings:vm | Yes | This is a priceless feature to display all the settings of the JVM, together with -XX:+PrintCommandLineFlags it can show a world of hidden stuff. http://www.javamonamour.org/2018/11/java-showsettings.html |
| -XX:+UseStringDeduplication | Yes | https://www.baeldung.com/jvm-garbage-collectors |
| -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath |
Yes | When running a JVM in a docker container it is probably wise to use the HeapDumpOnOutOfMemoryError option so if you ever run out of memmory the jvm will write a dump of the heap to disk. https://www.merikan.com/2019/04/jvm-in-a-container https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1 |
| -Xss | Test | Increase the thread’s stack size limit by passing the -Xss argument. https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1 Each application will have tens, hundreds, thousands of threads. Each thread will have its own stack. Each one of them consumes memory. If their consumption goes beyond a certain limit, then a StackOverflowError is thrown. More details about StackOverflowError and solutions to resolve it can be found in this article. Linux 64-bit JVM Default thread stack size = 1024k -Xss2m : This will set the thread's stack size to 2mb |
| -Dsun.net.client.defaultConnectTimeout -Dsun.net.client.defaultReadTimeout |
Yes | https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1 |
| -Duser.timeZone | Yes | https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1 |
| Enable GC Logging | Check | JDK 8: -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:{file-path} JDK9+: -Xlog:gc*:file={file-path} https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1 |
| ======================================= | ============== | ================================================================================ |