JVM Tuning with Machine Learning on Garbage Collection Logs
2024 (Engelska)Självständigt arbete på avancerad nivå (masterexamen), 20 poäng / 30 hp
Studentuppsats (Examensarbete)Alternativ titel
JVM-tuning med maskininlärning på skräpsamling-loggar (Svenska)
Abstract [en]
The performance of Java applications is crucial for developers and system administrators. Performance is primarily assessed through throughput (work done in a unit of time) and latency (responsiveness) of the application. These depend not only on the efficiency of the written code but also on the performance of the language runtime, the Java Virtual Machine (JVM). Optimizing the performance of the JVM or adjusting the JVM flags for each application can be a tedious task because it requires significant expertise and effort. This project proposes a tuning strategy for specific memory-related JVM flags based on Machine Learning (ML) techniques, using information collected from the Garbage Collection (GC) logs where GC is a process of reclaiming unused memory during runtime in JVM. We explore the possibility of improving throughput while maintaining an acceptable application latency by using the JVM flag values suggested by the ML models for one Java program at a time. DaCapo and SPECjbb2015 benchmarks are the programs that we use to measure performance. We analyze the impact of different ML techniques on performance improvements. According to our findings, tuning the selected JVM flags using suggestions from the models shows considerable potential to enhance throughput by up to 20% compared to default flag settings while maintaining latency within acceptable limits. This project aims to help developers and system administrators automatically determine optimum values for memory-related JVM flags, ultimately saving time and effort to achieve better throughput without compromising latency.
Abstract [sv]
Prestandan hos Java-applikationer är avgörande för utvecklare och systemadministratörer. Prestanda bedöms främst genom genomströmning (arbete utfört under en tidsenhet) och latens (responsivitet) hos applikationen. Dessa beror inte bara på effektiviteten hos den skrivna koden utan också på prestandan hos exekveringsmiljön, den s.k. JVM. Att optimera prestandan hos JVM eller justera JVM-flaggor för varje applikation kan vara en tidskrävande uppgift eftersom det kräver betydande expertis och ansträngning. Detta projekt föreslår en strategi för justering av specifika minnesrelaterade JVM-flaggor baserat på maskininlärnings-tekniker, med hjälp av information som samlats in från GC-loggar där GC är en process för att återta oanvänt minne under körning i JVM. Vi utforskar möjligheten att förbättra genomströmningen samtidigt som vi bibehåller en acceptabel applikationslatens genom att använda de flaggvärden som föreslås av maskininlärning-modellerna för ett Java-program åt gången. DaCapo och SPECjbb2015 benchmarkprogrammen är de program som vi använder för att mäta prestanda. Vi analyserar inverkan av olika maskininlärnings-tekniker på prestandaförbättringar. Enligt våra resultat visar justering av de valda JVM-flaggorna med hjälp av förslag från modellerna betydande potential att förbättra genomströmningen med upp till 20% jämfört med standardflagginställningar samtidigt som latensen hålls inom acceptabla gränser. Detta projekt syftar till att hjälpa utvecklare och systemadministratörer att automatiskt bestämma optimala värden för minnesrelaterade JVM-flaggor, vilket slutligen sparar tid och ansträngning för att uppnå bättre genomströmning utan att kompromissa med latensen.
Ort, förlag, år, upplaga, sidor
2024. , s. 54
Serie
TRITA-EECS-EX ; 2024:631
Nyckelord [en]
Java Virtual Machine, Machine Learning, Auto-tuning, JVM flags, Garbage Collection logs, Garbage First, Performance Optimization
Nyckelord [sv]
Java Virtual Machibe, Maskininlärning, Automatisk justering, JVM-flaggor, Garbage Collection-loggar, Garbage First, Prestandaoptimering
Nationell ämneskategori
Data- och informationsvetenskap
Identifikatorer
URN: urn:nbn:se:kth:diva-353979OAI: oai:DiVA.org:kth-353979DiVA, id: diva2:1901064
Externt samarbete
Oracle
Handledare
Examinatorer
2024-10-022024-09-252024-10-02Bibliografiskt granskad