Modern computing systems must be able to handle a variety of workloads with different resource requirements, which can unpredictably change multiple times over their lifetime. Non-functional requirements have also become more critical than ever, as users request efficient and responsive applications. To meet these demands, systems are becoming more complex, and Operating System (OS) schedulers are unable to fully leverage their customization options for attaining optimal use of resources. The effective use of such systems requires an adaptive approach capable of considering the run-time status of the system and each workload. Run-Time Resource Managers (RTRMs) have emerged as a promising solution for extending OS capabilities in specific application domains. In this thesis, we introduce Konro, a new lightweight RTRM implemented entirely in user space. Konro features a modular and extensible design, it is portable across a large number of Linux-based systems and supports different types of architectures. Konro is also flexible, as it supports different resource allocation policies to achieve different system-wide goals. The framework provides a solid infrastructure that allows developers to create new policies tailored to specific architectures and goals. Additionally, the framework includes an application library named KonroLib, which features an API that enables applications to report their Quality-of-Service. Konro uses this information to enforce new resource constraints via an OS interface, managing the trade-off between application performance requirements and system resource goals. Konro works seamlessly with native and container-based applications. Furthermore, we explored the possibility of expanding the framework in a distributed environment by leveraging Kubernetes and improving its local resource management capabilities. Our tests show that the framework has minimal overhead and can quickly enforce new constraints in response to changes in the system or applications. We conducted several tests on applications running in Docker containers and obtained promising results for integrating the execution of the framework with Kubernetes.
I sistemi informatici moderni devono essere in grado di gestire un'ampia gamma di tipologie di applicazioni con differenti requisiti di risorse, che possono cambiare imprevedibilmente durante l'esecuzione. I requisiti non funzionali sono divenuti un fattore cruciale, poiché gli utenti richiedono applicazioni rapide ed efficienti. Per soddisfare queste esigenze, i sistemi informatici sono divenuti più complessi e gli scheduler dei sistemi operativi (SO) faticano a sfruttare le loro opzioni di personalizzazione per raggiungere una gestione ottimale delle risorse. Un utilizzo efficace di tali sistemi richiede un approccio adattivo, in grado di considerare sia lo stato del sistema che dei processi. I Run-Time Resource Manager (RTRM) sono emersi come una soluzione promettente per estendere le capacità del SO in specifici domini applicativi. In questa tesi presentiamo Konro, un nuovo e leggero RTRTM implementato interamente in user space. Konro ha una struttura modulare ed estendibile, è portabile su svariati sistemi Linux e molteplici architetture. Konro è inoltre flessibile, poiché consente l'uso di differenti politiche di allocazione delle risorse al fine di raggiungere diversi obiettivi a livello di sistema. Il framework fornisce un'infrastruttura che consente agli sviluppatori di creare politiche personalizzate per architetture e scopi specifici. Il framework include la libreria applicativa KonroLib, che consente alle applicazioni di comunicare il loro Quality-of-Service. Konro utilizza tali informazioni per imporre nuovi vincoli sulle risorse, gestendo l'equilibrio tra i requisiti prestazionali delle applicazioni e gli obiettivi di sistema. Konro può gestire applicazioni native o basate su container. Abbiamo inoltre esplorato la possibilità di espandere il framework in ottica distribuita sfruttando Kubernetes, migliorandone la capacità di gestire risorse localmente. I nostri test mostrano che il framework ha un overhead minimo e risponde rapidamente ai cambiamenti nel sistema e nelle applicazioni. Abbiamo condotto diversi esperimenti su applicazioni eseguite all'interno di container Docker e ottenuto risultati promettenti per l'integrazione con Kubernetes.
KONRO : an adaptive approach to computing resource management
Lupi, Giovanni Edoardo
2021/2022
Abstract
Modern computing systems must be able to handle a variety of workloads with different resource requirements, which can unpredictably change multiple times over their lifetime. Non-functional requirements have also become more critical than ever, as users request efficient and responsive applications. To meet these demands, systems are becoming more complex, and Operating System (OS) schedulers are unable to fully leverage their customization options for attaining optimal use of resources. The effective use of such systems requires an adaptive approach capable of considering the run-time status of the system and each workload. Run-Time Resource Managers (RTRMs) have emerged as a promising solution for extending OS capabilities in specific application domains. In this thesis, we introduce Konro, a new lightweight RTRM implemented entirely in user space. Konro features a modular and extensible design, it is portable across a large number of Linux-based systems and supports different types of architectures. Konro is also flexible, as it supports different resource allocation policies to achieve different system-wide goals. The framework provides a solid infrastructure that allows developers to create new policies tailored to specific architectures and goals. Additionally, the framework includes an application library named KonroLib, which features an API that enables applications to report their Quality-of-Service. Konro uses this information to enforce new resource constraints via an OS interface, managing the trade-off between application performance requirements and system resource goals. Konro works seamlessly with native and container-based applications. Furthermore, we explored the possibility of expanding the framework in a distributed environment by leveraging Kubernetes and improving its local resource management capabilities. Our tests show that the framework has minimal overhead and can quickly enforce new constraints in response to changes in the system or applications. We conducted several tests on applications running in Docker containers and obtained promising results for integrating the execution of the framework with Kubernetes.File | Dimensione | Formato | |
---|---|---|---|
2023_05_Lupi_Executive Summary_02.pdf
Open Access dal 18/04/2024
Descrizione: Executive Summary
Dimensione
486.38 kB
Formato
Adobe PDF
|
486.38 kB | Adobe PDF | Visualizza/Apri |
2023_05_Lupi_Tesi_01.pdf
Open Access dal 18/04/2024
Descrizione: Tesi
Dimensione
1.27 MB
Formato
Adobe PDF
|
1.27 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/210323