Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Monitoraggio di applicazioni software mediante modelli di Markov - slides
1. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Universit` degli Studi di Trieste
a
Facolt` di Ingegneria
a
Corso di Laurea Triennale in Ingegneria Informatica
Monitoraggio di applicazioni software
mediante modelli di Markov
Laureando Riccardo Cecolin Relatore Prof. Enzo Mumolo
2. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Problema
Riconoscere a che programma appartiene un processo in
esecuzione utilizzando il workload generato dal processo per:
verificare i processi in esecuzione per monitorare il
software autorizzato
classificare i processi per ottimizzare l’allocazione di
risorse in un sistema operativo
H0 ≡ il processo
P(H0 ) corrisponde al
P(H1 ) Θ programma dichiarato
H1 ≡ il processo non
corrisponde
3. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Soluzione proposta
Rappresentare il workload di un
processo con la sequenza di accessi in
memoria (indirizzi) ed analizzarlo con
strumenti di elaborazione dei segnali
Identificare un insieme di programmi dal workload
significativo
Trovare la metodologia pi` efficace per l’estrazione del
u
workload
Effettuarne la classificazione da un punto di vista
statistico (modelli di Markov nascosti)
4. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Workload analizzati
Spec CPU2006: suite di benchmark standard
per il calcolo delle prestazioni di cpu e memoria
Caratteristiche:
elevato carico su cpu e memoria
I/O trascurabile
risultati confrontabili con altri metodi
400.perl, 401.bzip2, 403.gcc, 429.mcf, 445.gobmk,
456.hmmer, 456.sjeng, 462.quantum, 464.h264ref,
471.omnetpp, 473.astar, 483.xalanc
5. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Modalit` di estrazione
a
Valgrind: instrumentation framework sul quale ` possibile
e
sviluppare tool di analisi dinamica
Sviluppate due estensioni per Valgrind:
tracebin
Genera tracce di indirizzi in formati ascii e binario
memorizzabili su disco
tracehmm
Genera la traccia ed effettua tutto il processo di classificazione
in memoria
Interfaccia e automazione via script Ruby.
6. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Analisi hmm e reti neurali
Due modalit` di analisi:
a
modelli di Markov nascosti
reti neurali feed forward, back-propagation
7. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Risultati offline HMM
Parametri ottimali di centroidi, stati trovati tramite prove
estese: 64 centroidi, 12 stati
Riconoscimento vicino al 100% per 8 tracce, 4 benchmark
8. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Risultati offline reti neurali
Testati diversi valori per n◦ di neuroni di input, neuroni hidden
Riconoscimento non sempre possibile per 8 tracce,4
benchmark
tracebin
Generati ∼ 400 GB di tracce per i benchmark Spec
9. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Sviluppo di tool in Valgrind
Instrumentazione: tracehmm
selezionare le istruzioni che
accedono in memoria
registrarci delle callback
riempire buffer di indirizzi
effettuare l’analisi
Sviluppate librerie di
quantizzazione vettoriale, hidden
markov models importabili
all’interno di Valgrind: senza
dipendenze da glibc, libm...
10. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Verifica su 12 benchmark
Test di verifica: 12 benchmark, 30 esecuzioni: ∼ 80%
tracehmm
Esecuzione dei test molto pi` rapida rispetto ai test offline
u
11. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Classificazione su 12 benchmark
Test di classificazione: 12 benchmark, 30 esecuzioni: 80%
prendendo sottoinsiemi di tracce con correlazione bassa: +90%
12. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Conclusione
Il sistema funziona
Il workload dei processi pu` essere descritto mediante HMM
o
Applicazioni
Monitoraggio e sicurezza Allocazione di risorse
whitelist sistemi operativi
blacklist virtualizzazione
Implementazione:
utilizzando sw in user space, Intel Pin
effettuando modifiche al MM del kernel Linux
utilizzando API di software di virtualizzazione