Tuning modern software systems can be tremendously challenging: the huge number of configuration parameters and their complex dependencies make the manual research for the optimal configuration tedious and time-consuming. Furthermore, such optimal configuration depends on the workload under which the system is running. This thesis presents the work done to extend an existing performance tuner to be directly applied to a production environment exploiting the real workload perceived by the system, i.e. while it is serving its clients, hence the term Online System Tuning. This approach avoids the necessity of analyzing and replicating the workload on a replica of the system but poses new challenges. To apply the tuner directly to production environments, two main modules were developed: a workload forecasting module, based on state-of-the-art techniques that minimize the necessity of manual work, and a stability finder module, used to decide when to perform tuning experiments. With these two modules, the probability of testing a new and possibly mistaken software configuration during a workload change is reduced, which would cause the system clients to suffer Quality of Service losses. Moreover, by directly tuning the production system the effort of running the tuner is reduced, meaning that it is easier and faster to apply to different scenarios. The proposed solution was tested on two DBMS models with 20 scenarios, highlighting that the integration of forecasting techniques improves the safety of the tuning process while keeping the effectiveness of the original tuner.

L'ottimizzazione dei moderni sistemi software può essere estremamente impegnativa: l'elevata quantità di parametri di configurazione e le loro complesse dipendenze rendono estremamente tediosa e dispendiosa la ricerca della configurazione ottimale. Inoltre, la configurazione ottimale dipende dal carico di lavoro a cui è soggetto il sistema. Questa tesi presenta il lavoro svolto per estendere un preesistente ottimizzatore di prestazioni in modo da ottimizzare direttamente il sistema di produzione sfruttando il carico di lavoro reale percepito dal sistema, ovvero mentre sta servendo i suoi clienti. Questo approccio evita la necessità di analizzare e replicare il carico di lavoro su una replica del sistema, ma pone nuove sfide. Per applicare l'ottimizzatore direttamente ai sistemi di produzione sono stati sviluppati due principali moduli: un modulo di previsione del carico di lavoro, basato su tecniche all'avanguardia che riducono al minimo la necessità del lavoro manuale, e un modulo di verifica della stabilità, utilizzato per decidere quando sperimentare nuove configurazioni. Con questi due moduli si riduce la probabilità di esaminare una nuova configurazione possibilmente errata durante un cambiamento nel carico di lavoro, che potenzialmente ridurrebbe la qualità dei servizi del sistema. Inoltre, ottimizzando direttamente il sistema di produzione si riduce la mole di lavoro necessaria per poter applicare l'ottimizzatore su sistemi distinti. La soluzione proposta è stata verificata svolgendo 20 esperimenti di ottimizzazione di due modelli di database, evidenziando che l'integrazione di tecniche di previsione migliora la sicurezza del processo di ottimizzazione mantenendo l'efficacia dell'ottimizzatore originale.

Online Contextual System Tuning with Bayesian Optimization and Workload Forecasting

MOROLDO, LUCA
2021/2022

Abstract

Tuning modern software systems can be tremendously challenging: the huge number of configuration parameters and their complex dependencies make the manual research for the optimal configuration tedious and time-consuming. Furthermore, such optimal configuration depends on the workload under which the system is running. This thesis presents the work done to extend an existing performance tuner to be directly applied to a production environment exploiting the real workload perceived by the system, i.e. while it is serving its clients, hence the term Online System Tuning. This approach avoids the necessity of analyzing and replicating the workload on a replica of the system but poses new challenges. To apply the tuner directly to production environments, two main modules were developed: a workload forecasting module, based on state-of-the-art techniques that minimize the necessity of manual work, and a stability finder module, used to decide when to perform tuning experiments. With these two modules, the probability of testing a new and possibly mistaken software configuration during a workload change is reduced, which would cause the system clients to suffer Quality of Service losses. Moreover, by directly tuning the production system the effort of running the tuner is reduced, meaning that it is easier and faster to apply to different scenarios. The proposed solution was tested on two DBMS models with 20 scenarios, highlighting that the integration of forecasting techniques improves the safety of the tuning process while keeping the effectiveness of the original tuner.
2021
Online Contextual System Tuning with Bayesian Optimization and Workload Forecasting
L'ottimizzazione dei moderni sistemi software può essere estremamente impegnativa: l'elevata quantità di parametri di configurazione e le loro complesse dipendenze rendono estremamente tediosa e dispendiosa la ricerca della configurazione ottimale. Inoltre, la configurazione ottimale dipende dal carico di lavoro a cui è soggetto il sistema. Questa tesi presenta il lavoro svolto per estendere un preesistente ottimizzatore di prestazioni in modo da ottimizzare direttamente il sistema di produzione sfruttando il carico di lavoro reale percepito dal sistema, ovvero mentre sta servendo i suoi clienti. Questo approccio evita la necessità di analizzare e replicare il carico di lavoro su una replica del sistema, ma pone nuove sfide. Per applicare l'ottimizzatore direttamente ai sistemi di produzione sono stati sviluppati due principali moduli: un modulo di previsione del carico di lavoro, basato su tecniche all'avanguardia che riducono al minimo la necessità del lavoro manuale, e un modulo di verifica della stabilità, utilizzato per decidere quando sperimentare nuove configurazioni. Con questi due moduli si riduce la probabilità di esaminare una nuova configurazione possibilmente errata durante un cambiamento nel carico di lavoro, che potenzialmente ridurrebbe la qualità dei servizi del sistema. Inoltre, ottimizzando direttamente il sistema di produzione si riduce la mole di lavoro necessaria per poter applicare l'ottimizzatore su sistemi distinti. La soluzione proposta è stata verificata svolgendo 20 esperimenti di ottimizzazione di due modelli di database, evidenziando che l'integrazione di tecniche di previsione migliora la sicurezza del processo di ottimizzazione mantenendo l'efficacia dell'ottimizzatore originale.
Workload forecasting
System tuning
Machine learning
Deep learning
Real-time
File in questo prodotto:
File Dimensione Formato  
Moroldo_Luca.pdf

accesso aperto

Dimensione 5.2 MB
Formato Adobe PDF
5.2 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/9894