Analisi empirica dei meccanismi di log in sistemi open-source!



Documenti analoghi
Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Realizzazione di un tool di instrumentazione automatica a supporto della failure analysis

Strategie per il miglioramento dei log applicativi basate su Software Fault Injection

Un approccio innovativo alla tecnica di robustness testing del sistema operativo Linux

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB:

Realizzazione di un framework di monitoring per l'analisi di sistemi critici Anno Accademico 2013/2014

Strumento per l iniezione di guasti software nel sistema operativo GNU/Linux

Valutazione sperimentale di tecniche di testing per software in relazione ai tipi di guasti

Progettazione e sviluppo di uno strumento di monitoraggio dei componenti software di un sistema per il controllo del traffico aereo

Università degli Studi Roma Tre

Un architettura per la gestione dei log di applicazioni distribuite

Analisi empirica dei meccanismi di log in sistemi open-source

Prototipazione di un componente di elaborazione dei piani di volo in un sistema di Traffic Management

Uno strumento per l emulazione di fallimenti hardware in sistemi virtualizzati

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Tesi di Laurea Specialistica EMULAZIONE DI EFFETTI WAN NELLA VALUTAZIONE DELLE PRESTAZIONI DI SERVER WEB. Candidato Emiliano Zeppa.

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Uno strumento per il deployment automatico di performance test su piattaforme per la distribuzione di dati

Analisi sperimentale di software aging nel kernel Linux

Analisi e sviluppo di un sistema automatico per la segnalazione di stati anomali dei job del Data Center S.Co.P.E.

UN SUPPORTO AUTOMATICO PER LA RACCOLTA E L ANALISI DI DATI SPERIMENTALI DI UN MIDDLEWARE PER LA DISTRIBUZIONE DI DATI

Università degli Studi di Napoli Federico II Facoltà di Ingegneria. Corso di. Sistemi Distribuiti. Prof. Stefano Russo. Field Failure Data Analysis

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

Implementazione di tecniche di tolleranza ai guasti in un middleware per la Data Distribution Service

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Una metodologia per la definizione dei livelli di criticità dei componenti di un sistema software complesso

INFORMATICA 1 L. Mezzalira

Progettazione ed implementazione di un tool per lo sviluppo di applicazioni in Esperanto

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

METODOLOGIA STATISTICA E CLASSIFICAZIONE DEI DATI

SMD: a sensor data distribution service for FIN-BOX middleware for the interoperability in systems of systems Anno Accademico 2011/2012

Un framework a supporto della sperimentazione di tecniche euristiche. per l ottimizzazione di pagine Web per Screen Readers

Strategie e Operatività nei processi di backup e restore

Strumenti per la gestione della configurazione del software

Tecniche di riuso del software: applicazione ad un caso di studio reale

Laboratorio di Pedagogia Sperimentale. Indice

Generazione Automatica di Asserzioni da Modelli di Specifica

ALLEGATO B. Nel corso degli anni il monitoraggio ha previsto nelle diverse annualità:

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

Confronto sperimentale tra tecniche di testing automatico per applicazioni Android

Introduzione ai tipi di dato astratti: applicazione alle liste

Analisi della Costruzione Partecipativa di un Wiki con un Applicazione a Wikipedia

tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza

PROGETTO AUTONOMIA INDIRIZZO

La riforma del servizio di distribuzione del

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.

Grid on Cloud : Implementazione e Monitoraggio

Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) PIANO DI LAVORO ECONOMIA AZIENDALE CLASSE 5 B SI

Analisi della dependability di un middleware per la

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

Verifica del codice con Interpretazione Astratta

Esercizi Capitolo 6 - Alberi binari di ricerca

Figura Evoluzione dei consumi totali di energia elettrica. Figura Ripartizione dei consumi totali di energia elettrica

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

FONDAMENTI di INFORMATICA L. Mezzalira

Febbraio, Lo scenario energetico 2014

Ottimizzazione delle interrogazioni (parte I)

Progettazione di Basi di Dati

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Valutazione sperimentale di middleware pub/sub per reti wireless!

Real Time Control (RTC): modalità di invio dei dati

Memorizzazione affidabile di dati in un ambiente di Griglia

HRS BASIC. Scheda Tecnica

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Documento non definitivo

Test in automatico di programmi Android

PROGETTO INDAGINE DI OPINIONE SUL PROCESSO DI FUSIONE DEI COMUNI NEL PRIMIERO

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Realizzazione di un sistema di logging prototipale per la piattaforma

LSF. lab solution LOG SYSTEM FRAMEWORK. Pagina 1 di 14

- la possibilità di monitorare lo stato attuale della macchina - fornire una reportistica sulla base di alcune variabili

Secondo Rapporto sulla Previdenza Privata I giovani. A cura del centro studi AdEPP

Metodi di calcolo dei costi di prodotto

Evoluzione competitiva dei controlli in produzione nelle filiere dei mezzi di trasporto. Torino, Centro Congressi Lingotto aprile 2010

L Analisi della Varianza ANOVA (ANalysis Of VAriance)

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Gli accordi definiscono la durata, i contenuti e le modalità della formazione da svolgere.

PIANO DI LAVORO DI PIANIFICAZIONE E CONTROLLO CLASSE 5ALA PROF.SSA LUPETTI SIMONETTA ANNO SCOLASTICO 2012/13

Confronto tra strumenti e tecniche per il Reverse Engineering in Macromedia Flash e Microsoft Silverlight

Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato

TIMESHARK: Uno strumento per la visualizzazione e l analisi delle supertimelines. Relatore: Federico Grattirio

Aggiornamento Premium HMI Runtime TN0008

Gestione di un magazzino: sviluppo di un applicazione web-database

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Base di dati e sistemi informativi

Corso di. Analisi e contabilità dei costi

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri.

Innovazione didattica in matematica: PP&S su piattaforma e-learning in ambiente di calcolo evoluto

Relazioni statistiche: regressione e correlazione

penetration test (ipotesi di sviluppo)

Ciclo di vita del software: strumenti e procedure per migliorarne la sicurezza. Roberto Ugolini roberto.ugolini@postecom.it

Ingegneria del Software

L analisi dei rischi: l aspetto statistico Ing. Pier Giorgio DELLA ROLE Six Sigma Master Black Belt

Calcolatori: Algebra Booleana e Reti Logiche

Presentazione Data Base

Elementi di semantica denotazionale ed operazionale

Transcript:

tesi di laurea! Analisi empirica dei meccanismi di log in sistemi open-source! Anno Accademico 2010/2011! relatore! Ch.mo prof. Domenico Cotroneo! Correlatore! Ing. Antonio Pecchia! Candidato! Assunta Imperatrice! Matr. 534/1657!

files di testo prodotti dalle applicazioni, utilizzati per analizzare il comportamento al fallimento di un sist.! organizzati in records contenenti tipicamente un TIMESTAMP, una DESCRIZIONE DELLʼEVENTO e una SEVERITY! Meccanismo di logging Cosʼè?! Un insieme di istruzioni per:! la DETECTION di errori che si manifestano a run-time;! la COLLECTION delle relative informazioni nei logs;!! if (path == 0 strlen(path) == 0){! ERROR_SET(fatal, NDBD_EXIT_INVALID_CONFIG,!! "Invalid configuration fetched. Configuration does not contain valid, param_string);!...! Esempio: Chiamata alla funzione di log estratta dai sorgenti di MySQL 5.6.2 ( configuration.cpp, 368-373 )!

Problema1che Il meccanismo di logging presenta un importante limite:!! Studi dimostrano che circa il 60% dei fallimenti software dei sistemi non è segnalato nei log*! Obie4vo Analisi dei meccanismi di logging utilizzati in vari sistemi open-source, al fine di valutare la copertura dei logs rispetto ai Software Faults che si attivano a run-time! *M. Cinque, D. Cotroneo, R. Natella, and A. Pecchia. Assessing and improving the effectiveness of logs for the analysis of software faults. In Proc. Intʼl Conference on Dependable Systems and Networks (DSN 2010), pages 457 466!

Realizzazione del tool di supporto per il parsing delle chiamate di logs Ø RICEVE! i file sorgenti in ingresso! Ø ISOLA! le chiamate alle funzioni di log! Ø IDENTIFICA! le strutture per la detection! Ø PRODUCE:! CLASSIFICAZIONE e CONTEGGIO dei costrutti di controllo! CLASSIFICAZIONE ed ENUMERAZIONE di tutte le! possibili operazioni delle clausole negli IF! SCHEDATURA e CALCOLO di ciascuno dei possibili valori coinvolti nelle condizioni degli IF in notevoli 0, -1, 1, NULL, TRUE, FALSE e default VALUE (char, string e real)! Chiamate ap_log_error! Sorgenti http_main.c, http_config.c, http_log.c! n = 3! TOOL!! =================== Report ========================! LS SORGENTI 16276 LS ANALIZZATE 632 LOG 132! ELSE(std) 10 SWITCH 4 IFD 17 CATCH 0 OTHER 19! TOT IF 71 -> IF 1-Cond: 66 ** IF 2-Cond: 4 ** IF >= 3-Cond: 1 IF 2-Cond -> IF 1-Op/AND: 4 ** IF 1-Op/OR: 0! IF 3-Cond -> IF 2-Op/AND: 0 ** IF 2-Op/OR: 1 ** IF 2-Op/AND- OR: 0! ----------------------------------------------------------------------------------------! == -!= - < - > - <= - >=! NULL 4-0 (4)! 0 0-1 - 7-0 - 0-0 (8) -1 0-0 - 0-0 - 0-0 (0)! +1 0-0 - 0-0 - 0-0 (0) VALUE 4-36 - 3-1 - 0-0 (44) TRUE 13-0 (13)! FALSE 10-0 (10) Esempio: Analisi di Apache 2.2.19!

Sistemi open- source analizza1 La scelta dei software ha cercato di essere esaustiva: sono state considerate le caratteristiche dei sistemi reali al fine di ottenere dei risultati statisticamente significativi! Organizzazione a livello di S.O.! Dominio! applicativo! Tipologia! di sistema! Stile di! programmazione! Sistema! Operativo! Middleware! Server! Business! Critical! Mission! Critical! Centralizzato! Distribuito! Procedure! Oriented! (C)! Apache!!!!! Object! Oriented! (C++)! DDS!!!!! Cardamom!!!!! Minix!!!!! TAO!!!!! RTEMS!!!!! MySQL!!!!! Release analizzate:! Apache v. 1.3.41 / 2.0.64 / 2.2.19! DDS 1.0 /1.3 / 2.0 / 2.2! Corba TAO 1.6! Minix 3.1.8! Cardamom 2.1! RTEMS 4.10.1! MySQL 5.6.2!

CASO 1: Confronto del meccanismo di logging tra varie release di Apache PERCENTUALE DI CHIAMATE DI LOG RISPETTO AL CODICE ANALIZZATO! 3 25! 2 15! 1 5! APACHE v. 1.3.41 v. 2.0.64 v 2.2.19 Loc 24589 15053 16276 LOG 209 138 132 LOG/Loc 0,00849 0,00916 0,00811 Trend quasi costante per lʼaliquota di codice dedicata al logging! Operatori logici delle clausole degli IF! 18! 4! 4! 2! IF 1AND! IF 1 OR! IF 2 AND! IF 2 OR! IF 2 AND/OR! 1! 1! 1! Strutture di controllo per la detection di eventi! 18 16 14 12 10 8 6 4 2 157! v.1.3.41! v.2.0.64! v.2.2.19! 79! 71! 21! 24! 5! 5! 8! 1 IF! IF > 1 COND.! 1 4! 4! 33! 34! 15! 17! 16! 19! ELSE! SWITCH! IFDEFINE! OTHER! v La detection degli errori è realizzata principalmente per mezzo di strutture IF ed in particolare quelle formate da UNA condizione!! v Equità dellʼutilizzo dellʼoperatore OR negli IF composti da almeno tre condizioni: nella release 1.3.41 cʼè prevalenza di condizioni AND!

Operatori di confronto utilizzati nei costrutti IF! Valori per il confronto utilizzati nelle clausole degli IF! 140 90 120 100 80 60 40 20 0 93 31 31 44 39 37 41 9 10 3 2 1 1 5 0 0 0 0 ==!= < > <= >= v. 1.3.41 v. 2.0.64 v. 2.2.19 75 60 45 30 15 0 67 51 47 44 22 22 13 1213 8 6 7 8 10 10 4 3 0 0 0 0 NULL 0-1 1 VALUE TRUE FALSE La detection privilegia lʼuso degli operatori di uguaglianza e disuguaglianza! Si rileva particolare discordanza nellʼutilizzo dei comparatori tra la v. 1.3.41 e le altre due! Contenuti i riscontri su tutti i valori notevoli e sullʼadempimento di eventi booleani: si registra una peculiarità per la v. 1.3.41!! Notevoli verifiche di carattere generale! CONSISTENTI DIFFERENZE DI LOGGING TRA LA RELEASE 1.3.41 E LE VERSIONI 2.0.64 E 2.2.19!

CASO 2: Confronto del meccanismo di logging S.O. MINIX RTEMS Loc 30042 148501 LOG 128 161 LOG/Loc 0,004260 0,001084 MIDDLEWARE CARDAMOM TAO DDS Loc 187891 60341 23277 LOG 597 430 475 LOG/Loc 0,003177 0,007126 0,020406 SERVER MYSQL APACHE Loc 339465 16276 LOG 593 132 LOG/Loc 0,001746 0,008110 PERCENTUALE DI CHIAMATE DI LOG RISPETTO AL CODICE ANALIZZATO! Variabilità nella quota di codice per il logging sia tra le differenti classi che tra il gruppo di sistemi delle medesime!

14 12 10 8 6 4 2 Sistema Operativo! MINIX! RTEMS! 92! 8 19! 5! 6! 9! 9! 11! 4! 2! 6! IF! IF >1 Cond.! ELSE! SWITCH!IFDEFINE! CATCH! OTHER! STRUTTURE DI CONTROLLO PER LA DETECTION DI FAULT! È confermato il trend per le differenti categorie: la detection è fatta per mezzo di costrutti IF! Si afferma la modalità di loggare essenzialmente attraverso lʼuso degli IF composti da UNA clausola! Processi Server! Middleware! 60 50 485! MYSQL! APACHE! 60 50 486! CARDAMOM! TAO! DDS! 431! 40 30 40 30 308! 20 10 71! 37! 25! 34! 11! 29! 5! 1 4! 17! 19! IF! IF >1 Cond.! ELSE! SWITCH!IFDEFINE! CATCH! OTHER! 20 10 87! IF! IF >1 Cond.! 76! 42! 43! 5! 12! 26! 4! 26! 1 4! 4! 1! 39! 53! 18! 8! ELSE! SWITCH! IFDEFINE! CATCH! OTHER!

7 6 5 4 3 2 1 30 25 20 15 10 5 MINIX! 29! 25! 34! Sistema Operativo! RTEMS! 49! 21! 1 6! 3! 1! 1! ==!!=! <! >! <=! >=! Maggior impiego dellʼoperatore di disuguaglianza! Server! MYSQL! APACHE! 246! 251! 31! 37! 17! 1 1 1! 2! 1 ==!!=! <! >! <=! >=! 6! 35 30 25 20 15 10 Equivalente uso dei comparatori di uguaglianza e disuguaglianza! 5 83! 303! 204! 82! Middleware! CARDAMOM! TAO! DDS! 173! 41! 24! 9! 1! 11! 1 1! 1 12! 2! ==!!=! <! >! <=! >=! Prevalenza dellʼoperatore di uguaglianza! COMPOSIZIONE CLAUSOLE IF:! OPERATORI DI COMPARAZIONE! Utilizzo limitato degli operatori di monotonia: eccezione nel Middleware TAO! Non si evidenzia un trend comune!

7 6 5 4 3 2 1 30 25 20 15 10 5 Facoltà di Ingegneria! 1! 1 21! 16! Sistema Operativo! 7! MINIX! 1! RTEMS! 4! 44! 56! 1 3! NULL! -1! 1! VALUE! TRUE! FALSE! Notevoli i controlli di carattere generali! Server! MYSQL! APACHE! 251! 21! 4! 8! 14! 1 92! 98! 44! 4! 5 8! 13! 1 NULL! -1! 1! VALUE! TRUE! FALSE! Discordanza tra i sistemi appartenenti ai Processi Server! 30 25 20 15 10 5 Middleware! CARDAMOM! TAO! DDS! 3! 9! 259! 85! 78! 4 11! 5! 88! 91! 63! 67! 32! 41! 29! 35! 3 NULL! -1! 1! VALUE! TRUE! FALSE! Moderati controlli sui valori -1, VALUE e sulle condizioni booleane: eccezione in corrispondenza dello 0 nel sistema TAO! COMPOSIZIONE CLAUSOLE IF:! VALORI DI CONFRONTO! Scarsi controlli sui valori NULL e 1! È confermata lʼassenza di un trend comune per il logging!

Lesson learned and Key finding Dallʼanalisi si evince che:!! q le chiamate alle funzioni di log sono innescate soprattutto dal rivelamento degli errori mediante lʼutilizzo di strutture di controllo IF!! q si tenta di loggare un errore attraverso UNA SOLA istruzione! Una delle possibili cause della limitazione del meccanismo di logging è da attribuirsi a quei Software Faults che, attivati nella fase run-time, generano errori che impediscono il raggiungimento delle strutture di controllo!