Performance evaluation of Java garbage collectors for large heap transaction based applications

Detta är en Master-uppsats från KTH/Skolan för elektroteknik och datavetenskap (EECS)

Författare: Nicole Jagelid; [2020]

Nyckelord: ;

Sammanfattning: The automated memory management mechanism known as garbage collection is a vital part of the Java Virtual Machine (JVM) and has considerable influence on the overall performance of a running application. Java Development Kit 13 (JDK13) offers several garbage collectors for the developer to choose from when configuring the environment. Among those Garbage First GC (G1GC), Shenandoah GC, and the Z Garbage Col- lector (ZGC). In this study, we investigate the performance of the mentioned three collectors placed in the same environment. The collectors are tested on a subset of the DaCapo Benchmark Suite, and two real-world transaction-based applications with heap sizes of 63GB and 256GB respectively. The collectors are evaluated on multiple metrics with various GC configuration setups (additional GC- and JVM options) for each collector. Latency and throughput are key performance values in this study. The findings from the study demonstrate that one garbage collector con- figuration does not fit all applications. Shenandoah GC and ZGC perform significantly better than G1GC in terms of latency, average pause time, maxi- mum pause time, and total accumulated stop-the-world time, for all evaluated applications in the study when the right tunings are applied. It is possible to achieve more than 80% improvement on latency values. However, in regards to throughput and execution time, G1GC performs similarly to Shenandoah GC and ZGC. G1GC is also a very stable collector in terms of heap usage and is not as sensitive as Shenandoah GC and ZGC towards heap over-provisioning. This study also shows the possible performance impact of GC tuning on application throughput and latency.

  HÄR KAN DU HÄMTA UPPSATSEN I FULLTEXT. (följ länken till nästa sida)