Digitala Vetenskapliga Arkivet

Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
JVM Tuning with Machine Learning on Garbage Collection Logs
KTH, School of Electrical Engineering and Computer Science (EECS).
2024 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
JVM-tuning med maskininlärning på skräpsamling-loggar (Swedish)
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.

Place, publisher, year, edition, pages
2024. , p. 54
Series
TRITA-EECS-EX ; 2024:631
Keywords [en]
Java Virtual Machine, Machine Learning, Auto-tuning, JVM flags, Garbage Collection logs, Garbage First, Performance Optimization
Keywords [sv]
Java Virtual Machibe, Maskininlärning, Automatisk justering, JVM-flaggor, Garbage Collection-loggar, Garbage First, Prestandaoptimering
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-353979OAI: oai:DiVA.org:kth-353979DiVA, id: diva2:1901064
External cooperation
Oracle
Supervisors
Examiners
Available from: 2024-10-02 Created: 2024-09-25 Last updated: 2024-10-02Bibliographically approved

Open Access in DiVA

fulltext(3118 kB)808 downloads
File information
File name FULLTEXT01.pdfFile size 3118 kBChecksum SHA-512
91a32c6c047a1c4d0a5a44180cbb55865f179e01976bab5e9b8604a6e29656bf478969b1b50adc2b9a186ad9dab78e4e98e4c909f7752ed1475a2a70b691eece
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 808 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 1821 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf