Tesi di Laurea WebSim: un simulatore basato su tracce per sistemi
Transcript
Tesi di Laurea WebSim: un simulatore basato su tracce per sistemi
z z Tesi di Laurea WebSim: un simulatore basato su tracce per sistemi Web distribuiti localmente Candidato: Mauro Ranchicchio Relatore: Correlatore: Prof. Salvatore Tucci Ing. Valeria Cardellini Sommario • • • • • • • • z Sistemi Web Cluster one-way Misurazione del carico nel Web Simulazione di un sistema Web Cluster Implementazione del simulatore a tracce Politiche di dispatching e QoWS Caratterizzazione del carico Risultati dell’analisi simulativa Conclusioni e sviluppi futuri z1 z z Sistemi Web Cluster one-way: architettura Documento Server Web 2 Server Web 1 Server Web 3 LAN Richiesta documento INTERNET Web switch Client Server Web 4 Server back-end Server Web 5 Misurazione del carico nel Web: le tecniche • Server Logging: registrazione di tutte le richieste HTTP trattate dal server Web • Proxy Logging: utilizzato per valutare politiche di caching e popolarità delle risorse • Client Logging: implica modifiche al codice del browser; utilizzato per conoscere gli schemi di navigazione degli utenti • Packet Monitoring: “cattura” dei singoli pacchetti IP transitanti per un link di rete o attraverso un router • Misurazioni attive: generazione di richieste in modo controllata ed osservazione prestazioni z z2 z z Common Log Format Common Log Format (CLF): è il formato di server log più diffuso; è adottato come default dal server Apache Esempio di istanza: 160.80.35.50 - - [15/Mar/2002:18:30:06 +0100] "GET /gallery/landscape.jpg HTTP/1.1" 200 16384 Il formato del record consiste di sette campi: - host remoto - identità remota - utente autenticato - time-stamp - stringa della richiesta - codice di stato della risposta - numero di byte trasferiti Simulazione di un sistema Web Cluster: il motore di simulazione CSIM CSIM è una libreria di simulazione a eventi discreti, orientata ai processi • Processi: Modellazione entità attive del sistema Interazione e comunicazione tra processi: (Client, processi HTTP, processi di gestione del dispatching, etc) un processo può attenderne l’occorrenza Risorse: •• Eventi: o settarlo - Facility: Modellazione risorse con uso server back-end, • Mailbox: serializzato strutture per (CPU, scambio di informazioni Web switch, dischi) sotto forma di messaggi - Storage: Modellazione memoria centrale dei server Web z z3 z z Simulazione di un sistema Web Cluster: lo schema funzionale di WebSim INPUT INPUT Parametri Parametri DISPATCHER DISPATCHER CLIENT CLIENT Modulo di servizio SERVER SERVER Moduli di sistema FILE FILE SYS SYS RAM RAM GATHER GATHER OUTPUT OUTPUT Tabelle Tabelle di di output output CACHING CACHING Moduli di servizio Simulazione di un sistema Web Cluster: processi server fork() 2) 1) httpd httpd (padre) Listen Connect 3) httpd (figlio) httpd (padre) Listen httpd (figlio) Richieste dal client Il server rimane in attesa di connessioni: per ciascuna nuova richiesta client assegnatagli dal Web switch, crea un nuovo processo figlio che si occuperà di soddisfarla z z4 z z Implementazione del simulatore a tracce WebSim: modellazione nodi server Uscita dal sistema P Entrata nel sistema CPU C ache server Web Richiesta statica 1-P Disco server back-end Richiesta dinamica Back end Esempio di dinamiche: richiesta dinamica: Richieste sono servite da appositi nodi "GET /cgi-bin/script.cgi?param1=val1¶m2=val2... back-end (application o database server) ...param3=val3 HTTP/1.1" Simulazione di un sistema Web Cluster: generazione del carico Il workload da sottoporre ad un simulatore può essere generato: - Analiticamente: distribuzioni probabilistiche, invarianti del traffico Web - Da tracce: ricostruzione delle sessioni, dati memorizzati in file di log WebSim è un simulatore basato su tracce ricavate dall’analisi di server log in formato CLF Riproduzione del comportamento degli utenti registrato nel periodo di osservazione z z5 z z Implementazione del simulatore a tracce WebSim: ricostruzione sessioni utente Delimitazione delle sessioni utente: Determinazione di un time-out adeguato per informazioneinnon contenuta in modo esplicito nel suddividere sessioni il traffico registrato server log dallo stesso client proveniente ∆t < Effetto del time-out sul numero di sessioni # sessioni #max sessioni attive 120000 100000 # session Client C: richiesta (i+1)-esima 8000 7000 t.out: ∆t > 6000 la richiesta 5000 (i+1)-esima 4000 è la3000 prima di una2000 nuova 1000 sessione 80000 60000 40000 20000 0 Client C: richiesta (i+2)-esima 5 10 50 100 500 1000 # max sess. attiv t.out: le richieste appartengono alla10000 stessa 9000 sessione Client C: richesta i-esima 0 5000 10000 time-out [sec] Si adotta un time-out di 100 secondi Caratterizzazione del carico Le tracce sono state ottenute tramite elaborazione di file di log del sito World Cup‘98 rappresentanti differenti tipologie di carico #File Dimensione distinti media file trasferiti 3266 21517 byte Carico Arco temporale Frequenza hit Low 1 giorno Mid 28’ 18’’ 5189 14903 byte 396 hit/sec High 5’ 54’’ 3748 9540 byte 1912 hit/sec Carico Heavydyn % Richieste dinamiche ~80% 8.7 hit/sec Il quarto tipo di carico (Heavydyn) è rappresentativo del mix di richieste verso un sito di e-commerce z z6 z z Qualità del Servizio Web: principi • Classificazione - Identificazione classi di utenti e servizi - Classificazione utenti e servizi • Isolamento delle prestazioni - Politiche di scheduling con priorità - Partizionamento delle risorse • Alta utilizzazione delle risorse - Partizionamento dinamico delle risorse • Richiesta di ammissione - DICHIARAZIONE: stima della richiesta di risorse - CONTROLLO DELL’ACCESSO: decisione sull’ammissione della richiesta di connessione Analisi simulativa: organizzazione Sono stati svolti gli esperimenti utilizzando quattro di dispatching: Analisi politiche di scalabilità: sensibilità delle prestazioni •differenti del sistema al numero di nodi server nel cluster di 4° dinamiche: • Politiche - Totalità dellelivello richieste - Weighted Round Robin - Richieste dinamiche - Risorse di tipo single file (oggetti non-embedded) - Least Loaded Politichedella di 7°Qualità livello QoWS-aware: del Servizio Web: verifica •• Analisi - SwitchPriority del rispetto del Service Level Agreement e (classificazione e controllo ammissione) confronto tra tempi di servizio per di classe High e - StaticServerPartitioning classe Low (isolamento delle prestazioni) z z7 z z Risultati dell’analisi simulativa: analisi di scalabilità 90-percentile PRT e [msec] HRT[msec] HRT [msec] 90-percentile PRT e 90-percentilePRT 90-percentile PRTe eHRT HRT [msec] Dispatching LL Dispatching SwitchPri Dispatching ServerPart Dispatching WRR 200 200 200 200 150 150 150 150 100 100 100 100 PRT PRT PRT HRT HRT HRT 50 50 50 50 000 0 223 2 33 4 44 5 55 3 # nodi 4 5 server nodi server server ## nodi # nodi server 8 88 8 Politica dispatching: SwitchPriority Politica di dispatching: Weighted Politica di dispatching: LeastRound LoadedRobin Politica didi dispatching: ServerPartitioning Risultati dell’analisi simulativa: analisi di scalabilità Server-side Page Response Time - Carico HIGH 160 90-percentile PRT 140 120 100 WRR LL 80 SwitchPri 60 ServerPart 40 20 0 3 4 5 8 WRR 128,8 95,3 76 48,9 LL 114,2 88,6 72,9 54,9 SwitchPri 116,3 91,5 73,6 49,4 ServerPart 150,7 123,8 88,9 69,5 # nodi server Carico High: evidenzia meglio degli altri il vantaggio apportato dallo scale-out del Web cluster z z8 z z Risultati dell’analisi simulativa: richieste dinamiche 250 250 90-percentile PRT [se 90-percentile PRT [sec] Client-side PRT per pagine (al variare Client-side PRT per pagine dinamiche statiche e dinamiche del numero diSistema back-end) - Carico singolo server HEAVYDYN 200 150 100 50 230 Statiche 210 Dinamiche 190 170 0 150 Carico 1HIGH Statiche 232,7 90-perc.PRT 83,5 2Carico MID 3 218,7 83,9 218,5 143,1 Dinamiche Carico 4 LOW5 8 92,4 197,2 206,7 220,5 189,1 211,5 # nodi back-end Generazione dinamica dei contenuti: conduce ad incrementi sul PRT dal 71% al 163% per i tre scenari considerati Il carico Heavydyn evidenzia i vantaggi dello scale-out dell’insieme di server back-end Risultati dell’analisi simulativa: QoWS Server-side PRT e connessioni rifiutate Dispatching SwitchPriority 90-percentile Server-side PRT [msec] 160 25 140 20 120 100 15 80 10 60 40 5 20 0 2 3 4 5 8 PRT HighClass 135,7 110 86,8 68,8 45,6 PRT LowClass 157,9 113,6 87,6 69,9 45,4 27 16,3 10,3 5,8 1,5 % Rifiut. Low % conn. LowClass rifiutate 30 180 0 # nodi server La politica SwitchPriority riesce a garantire il SLA nel Server-side PRT solamente per sistemi ad alto numero di nodi z z9 z z Risultati dell’analisi simulativa: QoWS Server-side Page Response Time Server-side PRT e connessioni rifiutate Dispatching Carico ServerPart HIGH ServerPart 8 High 180 25 160 0,8 140 0,7 120 0,6 100 20 15 80 0,5 10 60 0,4 40 0,3 20 0,2 0 5 94,9 70,9 13,7 6,9 3,1 20 # nodi server 18 0 137,4 24 16 0 175,5 % Rifiut. Low 14 0 0 LowClass PRT 12 0 8 33,2 10 0 5 46,9 80 4 47,4 60 3 47,3 40 0,1 PRT HighClass 0 30 0 20 0 90 -percentile Server-side PRT [msec] Frequenza cumulativa PR 0,9 SwitchPri 8 High 200 % conn. LowClass rifiutate 1 server 1 PRT [msec] La politica ServerPartitioning permette di rispettare sempre il SLA, ma al costo di un maggior numero di richieste rifiutate di classe Low Conclusioni • E’ stato implementato un simulatore basato su tracce per sistemi Web Cluster, adottando diverse politiche di switching • L’analisi di scalabilità ha evidenziato la capacità delle politiche dinamiche di 4° livello di beneficiare dello scale-out in modo pressoché lineare • Sono state confrontate le politiche ServerPartitioning e SwitchPriority, nell’ottica della QoWS z z10 z z Sviluppi futuri • Utilizzo tracce da siti di e-commerce o information retrieval (alta presenza di contenuti dinamici) • Classificazione delle richieste dinamiche per l’utilizzo di politiche Client-aware (es., CAP) • Utilizzo di formati di log con migliore granularità del time-stamp z z11