• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 2
  • Tagged with
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Dimensioning Microservices on Kubernetes Platforms Using Machine Learning Techniques

Rubak, Adam January 2023 (has links)
In recent years, cloud computing and containerization have become increasingly popular for various applications. However, optimizing resource usage and minimizing costs while providing reliable and efficient service to users can be a challenge. One such challenge is scaling containers according to the current system load. This thesis focuses on the problem of properly dimensioning pods in Kubernetes, a widely used platform for managing containerized applications. The motivation behind this problem is that the standard solution, Horizontal Pod Autoscaler (HPA), often results in wasted resources or poor performance due to overprovisioning or underprovisioning. This thesis proposes a proactive approach to scaling applications by utilizing machine learning models to predict future resource requirements based on concurrent user counts on the platform. This approach involves collecting and modifying data from HPA and training various machine learning models to forecast and predict the system's future behavior. The results of this thesis demonstrate that machine learning models can predict future resource requirements based on trends in the application. Based on the data evaluation, it was found that overprovisioning negatively affects the response time. Additionally, the machine learning models were accurate enough to predict future CPU needs. However, further research and experimentation are necessary to improve the accuracy and reliability of these models. / Under de senaste åren har cloud computing och containerisering blivit allt populärare för olika applikationer. Det kan dock vara en utmaning att optimera resursanvändningen och minimera kostnaderna och samtidigt tillhandahålla pålitlig och effektiv service till användarna. En sådan utmaning är hur man skalar containrar enligt den aktuella systembelastningen. Det här examensarbetet fokuserar på problemet med korrekt dimensionering av pods i Kubernetes, en allmänt använd plattform för att hantera containeriserade applikationer. Motivet bakom detta problem är att standardlösningen, Horizontal Pod Autoscaler (HPA), ofta resulterar i antingen slöseri med resurser eller dålig prestanda på grund av överprovisionering eller underprovisionering. Detta examensarbete syftar till att föreslå ett proaktivt tillvägagångssätt för att skala applikationer genom att använda maskininlärningsmodeller för att förutsäga framtida resurskrav baserat på samtidiga antal användare på plattformen. Detta tillvägagångssätt innebär att samla in och modifiera data från HPA och träna olika maskininlärningsmodeller för att förutsäga systemets framtida beteende. Resultaten av denna avhandling visar att maskininlärningsmodeller kan förutsäga framtida resursbehov baserat på trender i applikationen. Baserat på datautvärderingen fann man att överprovisionering påverkar svarstiden negativt. Dessutom var maskininlärningsmodellerna tillräckligt exakta för att förutsäga framtida CPU-behov. Det krävs dock ytterligare forskning och experiment för att förbättra noggrannheten och tillförlitligheten hos dessa modeller.
2

Predicting resource usage on a Kubernetes platform using Machine Learning Methods

Gördén, Arvid January 2023 (has links)
Cloud computing and containerization has been on the rise in recent years and have become important areas of research and development in the field of computer science. One of the challenges in distributed and cloud computing is to predict the resource utilization of the nodes that run the applications and services. This is especially relevant for container-based platforms such as Kubernetes. Predicting the resource utilization of a Kubernetes cluster can help optimize the performance, reliability, and cost-effectiveness of the platform. This thesis focuses on how well different resources in a cluster can be predicted using machine learning techniques. The approach consists of 3 main steps: data collection, data extraction and pre-processing, and data analysis. The data collection step involves stressing the system with a load-generator called Locust and collecting data from Locust and collecting data from Kubernetes with the use of Prometheus. The data pre-processing and extraction step involves extracting relevant data and transforming it into a suitable format for the machine learning models. The final step involves applying different machine learning models to the data and evaluating their accuracy. The results of this thesis illustrate that machine learning can work well for predicting resources in a cluster based on how stressed the system is and that the best performing machine learning model tested was Support Vector Machine with a polynomial kernel. / Cloud computing och containerisering har ökat de senaste åren och har blivit viktiga områden för forskning och utveckling inom datavetenskap. En av utmaningarna inom distribuerad och cloud computing är att förutsäga resursutnyttjandet av de noder som kör applikationerna och tjänsterna. Detta är särskilt relevant för containerbaserade plattformar som Kubernetes. Att förutsäga resursutnyttjandet av ett Kubernetes-kluster kan hjälpa med att optimera plattformens prestanda, tillförlitlighet och kostnadseffektivitet. Denna avhandling fokuserar på hur väl olika resurser i ett kluster kan förutsägas med hjälp av maskininlärningstekniker. Tillvägagångssättet består av 3 huvudsteg: datainsamling, dataextraktion och för-processering, samt dataanalys. Datainsamlingssteget innebär att stressa systemet med en load-generator som heter Locust och samla in data från Locust och även samla in data från Kubernetes med hjälp av Prometheus. Steget för för-processering och extrahering av data innefattar att extrahera relevant data och omvandla den till ett lämpligt format för maskininlärningsmodellerna. Det sista steget innefattar att tillämpa olika maskininlärningsmodeller på data och utvärdera deras noggrannhet. Resultaten av denna avhandling demonstrerar att maskininlärning kan fungera bra för att förutsäga resurser i ett kluster baserat på hur stressat systemet är och att den bäst presterande maskininlärningsmodellen som testades var Support Vector Machine med en polynom-kernel.

Page generated in 0.0849 seconds