Analisi sperimentale di software aging nel kernel Linux

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