Ohjelmistokomponenttien suorituskyvyn ennustaminen ja optimointi Kubernetes-ympäristössä
Hippeläinen, Miia-Marjut (2026)
Hippeläinen, Miia-Marjut
2026
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202603204654
https://urn.fi/URN:NBN:fi:amk-202603204654
Tiivistelmä
Tässä opinnäytetyössä keskityttiin ohjelmistokomponenttien kapasiteetinhallintaan ja suorituskyvyn mallintamiseen Kubernetes-ympäristössä. Työn tavoitteena oli kehittää koneoppimismalli, joka kykenee analysoimaan ja ennustamaan ohjelmistokomponenttien suorituskykyä riippumatta niiden toiminnallisesta tarkoituksesta. Tämä mahdollistaa resurssien optimaalisen käytön ja auttaa tunnistamaan pullonkaulat ajoissa.
Tutkimus toteutettiin rakentamalla Docker-compose pohjainen testiympäristö, jossa hyödynnettiin avoimen lähdekoodin palveluja (Fluent-Bit, Flog, Grafana, Loki, cAdvisor, Prometheus, Grafana) loki- ja suorituskykymittareiden keräämiseen. Kuormitusskenaariot suunniteltiin vaihtelemalla lokirivien määrää 20 000–50 000 ja testaamalla järjestelmää minimi-, vakio- ja stressikuormitustasoilla, jotta komponenttien todellinen suorituskyky ja mahdolliset pullonkaulat tulivat esiin.
Kerätyn mittausdatan pohjalta koulutettiin ja arvioitiin kaksi regressiomallia (RandomForestRegressor ja MLPRegressor). Mallien avulla tutkittiin suorituskykymittareiden välisiä riippuvuuksia ja muodostettiin ennustemalli resurssien käytöstä. Mallien suorituskyvynarviointi osoitti niiden kykenevän ennustamaan useita järjestelmän suorituskykymittareita kohtuullisella tarkkuudella. Erityisen onnistuneita tuloksia saavutettiin Loki-komponentin muistinkäytön ennustamisessa (R² > 0,95) kaikissa kuormitustilanteissa. Latenssien osalta p50- ja p95-arvojen ennusteet vastasivat hyvin mitattuja arvoja. Haasteita ilmeni p99-latenssien ja tiettyjen CPU-käyttöön liittyvien muuttujien mallintamisessa.
Kehitetty malli tarjoaa käytännöllisen työkalun ohjelmistokehittäjille ja järjestelmäarkkitehdeille resurssien optimointiin ja kustannustehokkaan skaalautuvuuden tukemiseen Kubernetes-ympäristössä. Se mahdollistaa vaikuttamisen kapasiteetinsuunnittelun, pullonkaulojen ennakoivan tunnistamisen ja järjestelmän vakaamman toiminnan, mikä parantaa käyttäjäkokemusta ja vähentää operatiivisia kustannuksia. Työ tarjoaa pohjan jatkokehitykselle, kuten ennustetarkkuuden parantamiselle haastavissa mittareissa, mallien yleistettävyyden arvioinnille laajemmissa ympäristöissä ja reaaliaikaisen käytön kehittämiselle.
Tutkimus toteutettiin rakentamalla Docker-compose pohjainen testiympäristö, jossa hyödynnettiin avoimen lähdekoodin palveluja (Fluent-Bit, Flog, Grafana, Loki, cAdvisor, Prometheus, Grafana) loki- ja suorituskykymittareiden keräämiseen. Kuormitusskenaariot suunniteltiin vaihtelemalla lokirivien määrää 20 000–50 000 ja testaamalla järjestelmää minimi-, vakio- ja stressikuormitustasoilla, jotta komponenttien todellinen suorituskyky ja mahdolliset pullonkaulat tulivat esiin.
Kerätyn mittausdatan pohjalta koulutettiin ja arvioitiin kaksi regressiomallia (RandomForestRegressor ja MLPRegressor). Mallien avulla tutkittiin suorituskykymittareiden välisiä riippuvuuksia ja muodostettiin ennustemalli resurssien käytöstä. Mallien suorituskyvynarviointi osoitti niiden kykenevän ennustamaan useita järjestelmän suorituskykymittareita kohtuullisella tarkkuudella. Erityisen onnistuneita tuloksia saavutettiin Loki-komponentin muistinkäytön ennustamisessa (R² > 0,95) kaikissa kuormitustilanteissa. Latenssien osalta p50- ja p95-arvojen ennusteet vastasivat hyvin mitattuja arvoja. Haasteita ilmeni p99-latenssien ja tiettyjen CPU-käyttöön liittyvien muuttujien mallintamisessa.
Kehitetty malli tarjoaa käytännöllisen työkalun ohjelmistokehittäjille ja järjestelmäarkkitehdeille resurssien optimointiin ja kustannustehokkaan skaalautuvuuden tukemiseen Kubernetes-ympäristössä. Se mahdollistaa vaikuttamisen kapasiteetinsuunnittelun, pullonkaulojen ennakoivan tunnistamisen ja järjestelmän vakaamman toiminnan, mikä parantaa käyttäjäkokemusta ja vähentää operatiivisia kustannuksia. Työ tarjoaa pohjan jatkokehitykselle, kuten ennustetarkkuuden parantamiselle haastavissa mittareissa, mallien yleistettävyyden arvioinnille laajemmissa ympäristöissä ja reaaliaikaisen käytön kehittämiselle.
