Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Tesi di laurea specialistica Analisi sperimentale di software aging nel kernel Linux Anno Accademico 2008/09 Relatore Ch.mo Prof. Stefano Russo Correlatori Ing. Roberto Natella Ing. Roberto Pietrantuono Candidato Berniero Volzone Matr.: 885/288 1 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Contesto Software dependability: “la capacità del sistema di erogare un servizio che può essere ritenuto legittimamente fidato” [Laprie et al., 2004]; è un requisito rilevante per i sistemi mission/business critical: → applicazioni radar per il controllo del traffico aereo; → apparecchiature medicali; → software per il controllo remoto di veicoli senza conducente; → applicazioni di e-commerce, ecc.. in scenari long running è minacciata dal fenomeno del software aging. 2 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Software aging Definizione Fenomeno che riduce la dependability del software long running, che può manifestarsi attraverso: una lenta e progressiva degradazione delle prestazioni (esaurimento delle risorse); improvvisi stalli o crash. Cause Soluzione Potenziali condizioni di errore derivate da: Software rejuvenation memory leaking e memory bloating; → riavvio dell’applicazione frammentazione dei dischi; periodico (frequenza di esecuzione ∝ costi); lock su file non rilasciati; preventivo (prima del fallimento). accumulo di errori di round-off, ecc.. 3 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Contributo Sviluppo di uno strumento in grado di monitorare lo “stato di salute” del SO Linux → miglioramento delle prestazioni delle future versioni del kernel. Analisi del fenomeno di software aging, tramite lo strumento realizzato, al fine di: identificare le aree del kernel maggiormente legate all’aging → riduzione dei tempi e dei costi per le operazioni di debugging; stimare il Time To Exhaustion (TTE) delle risorse → schedulazione ottimale delle operazioni di ripristino. Implementazione di: un tracer in kernel space → monitoring delle informazioni di sistema; una funzione in user space → acquisizione e formattazione dei dati; uno script in ambiente Matlab → valutazione dei risultati sperimentali. 4 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi sperimentale di software aging nel kernel Linux Analisi del software aging nel SO Linux Il metodo utilizzato è measurement-based → monitoring e raccolta periodica delle informazioni; → analisi dei dati reperiti. 5 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi sperimentale di software aging nel kernel Linux Strumento di monitoring 6 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Procedura sperimentale Dati raccolti Monitoring del sistema Analisi dei dati Salvataggio Prelievo Sperimentatore 7 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi sperimentale di software aging nel kernel Linux Esecuzione dell’esperimento Settaggio del carico imposto con il tool stress (scelto tramite capacity test): → 50 processi per lo stress della CPU; → 50 processi per l’I/O; → 100 processi per malloc e free (blocchi di 4 MB); → 100 processi per write ed unlink (blocchi di 4 MB). abilitazione del tracer; attivazione della funzione per il reperimento delle informazioni in user space; esecuzione del test per un tempo minimo di 5 giorni. 8 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi dei dati raccolti Individuazione dei trend di aging significativi → test di Mann-Kendall; → metodo di Sen. Decorrelazione dei dati → Principal Component Analysis. Identificazione dei parametri di workload più rilevanti. 9 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Trend di aging individuati Sono stati individuati 3 trend di aging (riguardanti il sottosistema di memory management) relativi a: memory depletion; throughput loss; time loss. 10 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica TTE estimation Per ogni trend individuato sono stati calcolati: slope (coefficiente angolare della retta rappresentante il trend); variazione percentuale dell’indicatore di aging; TTE dell’indicatore di aging. Parametri Slope (x x10-5) V.P. (in 5 gg) TTE (giorni) Memory depletion [kB/min] FreeMem -0.5267 ≈-7.5% ≈64 Throughput loss memory management [op/min] n. tot. di mmap, munmap, brk -0.0063 ≈-11% ≈49 Time loss memory management [cicli clock/min] latenza tot. di mmap, munmap, brk 0.3537 ≈4.8% ≈100 11 Analisi sperimentale di software aging nel kernel Linux Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Identificazione dei parametri rilevanti Per ogni sottosistema è stato selezionato il set di PC in grado di ricoprire almeno il 98% della varianza delle informazioni monitorate. Le PC individuate rappresentano variabili (senza corrispettivo fisico) non ridondanti (decorrelate) e più rappresentative (con varianza maggiore). Dall’analisi dei coefficienti di combinazione lineare delle PC è stato possibile individuare, quindi, un insieme di parametri di workload rilevanti. File system I/O Disk I/O driver PC1 nr_access nr_softirq PC2 - Memory management Process management byte_request nr_task_runnable byte_alloc nr_flush nr_tasklet nr_prelazioni PC3 nr_write - - - PARAMETRI DI WORKLOAD 12 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Analisi sperimentale di software aging nel kernel Linux Conclusioni e sviluppi futuri Conclusioni Sono stati realizzati strumenti per il tracing e l’analisi dei dati, grazie ai quali è stato possibile riscontrare il fenomeno del software aging nel SO Linux. L’aging ha riguardato la quantità di memoria libera, il throughput e la latenza delle informazioni del sottosistema di memory management. È stata effettuata una stima del TTE ed è stato selezionato un subset di parametri di workload legato ai trend di aging individuati. Sviluppi futuri Esecuzione di ulteriori esperimenti per analizzare la variazione dei trend di aging al variare del carico. Sviluppo di tecniche di rejuvenation dei SO che sfruttino le metriche ed i parametri individuati. 13