Análise de Performabilidade de Aplicação I/O Bound em Cluster de
Transcrição
Análise de Performabilidade de Aplicação I/O Bound em Cluster de
Pós-graduação em Ciência da Computação Princípios e Técnicas da Análise Estatística Experimental Análise de Performabilidade de aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers Erico Augusto C. Guedes <[email protected]> Estêvão Chaves Monteiro <[email protected]> Roteiro 1. Justificativa 2. Introdução 3. Objetivos 4. Experimento 4.1. Fase 1 4.1.1. Análise Exploratória 4.1.2. Conclusões 4.2. Fase 2 4.2.1. Análise Exploratória 4.2.3. Testes de Aderência 4.2.2. Conclusões Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 2/34 1. Justificativa ● Utilizar aspectos da computação em nuvem [NIST, 2011]: ● ● On-demand self-service Broad network access Resource pooling Rapid elasticity Measured service Explorar maneiras de utilizar esses aspectos para o fornecimento de serviços de rede Prover serviço de rede em cluster, caracterizados como I/O bound, e averiguar disponibilidade e desempenho dos serviços comparação do serviço fornecido com computação em nuvem e sem computação em nuvem Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 3/34 2. Introdução ● Virtualização ► Abstração do hardware ► Tecnologia que alicerça a computação em nuvem Virtual Machines Otimizam a utilização dos recursos de hardware, reduzindo o grau de ociosidade destes recursos Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 4/34 2. Introdução ● Serviço Analisado: ► Web Proxy Cache Cluster – Squid 3.1 ► Serviço I/O bound ► Amplamente customizáveis: ● Arquitetura Hierárquica Mesh Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 5/34 2. Introdução ● Serviço Analisado – Web Proxy Cache ► Amplamente customizáveis: Protocolo Inter-cache: ICP – Internet Caching Protocol HTCP – Hypertext Cache Protocol CARP – Cache Array Routing Protocol Cache Digest ● Políticas de substituição LRU – Least Recently Used LFU – Least Frequenlty Used GDS – Greedy Dual Size ● Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 6/34 3. Objetivo Determinar se há perda de disponibilidade e desempenho (performabilidade) quando o serviço web proxy cache é fornecido em ambientes virtualizados. Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 7/34 4. Experimento ● Testbed Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 8/34 4. Experimento ● Ambiente de Virtualização: ► Container-based Operating System Virtualization: Host OS (Debian 7.1) Container-based virtualization Virtual Machines (Debian 7.1) Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 9/34 4. Experimento ● Métricas de interesse: ► Disponibilidade(A): ► Hit Ratio(HR) (Desempenho) Cache Hit: objeto está no cache Cache Miss: objeto não está no cache Hit Ratio: percetual de acesso a objetos que resulta em cache hit Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 10/34 4. Experimento ● Duas Fases: 1. Experimento fatorial fracionário exploratório (2 k-p)* Fatores Arquitetura Protocolo Inter-cache Política de Substituição Realizado em ambiente sem virtualização Níveis Hierárquica Mesh ICP HTCP CARP Cache Digest GDS LFU LRU heap LRU * CARP não foi desenvolvido para arquitetura hierárquica 2. Experimento comparativo De acordo com o observado na fase 1, configurar o cenário com maior disponibilidade e desempenho para: ambiente sem virtualização ambiente com virtualização Há perda? Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 11/34 4.1 - Fase 1 ● Coleta dos dados: ► ► ► Período de execução para cada combinação dos níveis de fatores: 1h # da amostra → 3600 Log do Web-Polygraph (client-side) 000.02| i-FirstRound 394 393.98 200 17.51 0 100 009.32| i-FirstRound 121086 0.00 -1 -1.00 0 100 Falha Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 12/34 4.1.1 Análise Exploratória ● Fase 1 ► Disponibilidade Na arquitetura mesh, só não foi observada disponibilidade total com o protocolo CARP Na arquitetura hierárquica, foi observada disponibilidade total apenas com o protocolo HTCP Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 13/34 4.1.1 Análise Exploratória ● Fase 1 - Desempenho Mesh Hierárquica Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 14/34 4.1.2 Conclusões - Fase 1 ● Arquitetura Mesh: ► Disponibilidade: ● ● ► Política de substituição não é um fator relevante. Apenas protocolo CARP não apresenta A = 100% Desempenho: ● ● Melhor desempenho para A = 100% se obtém com protocolo ICP Políticas de substituição equivalentes: Política de Substituição Hit Ratio GDSF 47.22% LFUDA 47.00% LRU 46.61% Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 15/34 4.1.2 Conclusões - Fase 1 ● Arquitetura Hierárquica: ► Disponibilidade: ● ► Apenas protocolo HTCP não apresenta A = 100% Desempenho: ● Média de Hit Ratio para o protocolo HTCP: Política de Substituição Hit Ratio GDSF 39.19% LFUDA 37.80% LRU 36.29% Heap LRU 36.35% Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 16/34 4.1.2 Conclusões - Fase 1 ● Níveis de otimização dos fatores: Fatores Arquitetura Protocolo Inter-cache Política de Substituição Níveis Hierárquica Mesh ICP HTCP CARP Cache Digest GDS LFU LRU heap LRU Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 17/34 4.2 - Fase 2 ● Coleta de Dados ► ► ► Período de execução para combinação estabelecida na fase 1: 80h # da amostra → 288.000 (1 amostra por segundo) Testes de normalidade no R limitam-se a conjuntos de dados de 5 mil valores. ● Solução: Subamostragem a cada 60: 288.000 / 60 = 4800 amostras. ● ► ► Alternativa: Média a cada 60. Desnecessário? Três populações→ 288.000 ● Sem virtualizar HD (baseline) ● HD Virtual bind-mounted ● HD Virtual sobre sistema de arquivos de rede (NFS) Disponibilidade: Baseline 100% NFS 99.9995% Bind-mounted 99.9445% Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 18/34 4.2.1 Análise Exploratória ● Desempenho Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 19/34 4.2.1 Análise Exploratória ● Desempenho Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 20/34 4.2.1 Análise Exploratória ● Desempenho Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 21/34 4.2.1 Análise Exploratória ● Gráfico Quantil-Quantil da Normal: Baseline Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 22/34 4.2.1 Análise Exploratória ● Gráfico Quantil-Quantil da Normal: Bind-Mounted Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 23/34 4.2.1 Análise Exploratória ● Gráfico Quantil-Quantil da Normal: Subamostra do Bind-Mounted Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 24/34 4.2.1 Análise Exploratória ● Gráfico Quantil-Quantil da Normal: NFS Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 25/34 4.2.1 Análise Exploratória ● Resumo dos Dados Baseline Amostras 288.000 Bind-Mounted 4.800 288.000 4.800 NFS 288.000 4.800 Média 38,06820 38,08489 33,42976 33,40216 22,03257 22,02696 IC min 38,05029 37,94630 33,40917 33,24077 22,01919 21,92205 IC max 38,08612 38,22349 33,45034 33,56354 22,04596 22,13188 Máximo 62,50 59,14 100,00 100,00 44,39 40,32 Mínimo 5,56 20,92 -1,00 -1,00 0,00 10,34 4,904528 4,897924 5,637106 5,703357 3,664335 3,70767 Desvio Padrão Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 26/34 4.2.2 Testes de Aderência ● Testes de aderência à distribuição normal: ► Shapiro-Wilk; ► Pearson χ² *; ► Lilliefors (Kolmogorov-Smirnov) *; ► Cramver-von Mises*; ► Anderson-Darling*. ● * Pacote nortest no R. Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 27/34 4.2.2 Testes de Aderência ● Testes de aderência à distribuição normal: Todos os testes deram valor-p efêmero! ► P-value < 2.2e-16 ► 2.2e-16 = 2,2 * 1016 = 0,00000000000000022 ► É o menor valor de ponto flutuante possível! ► Em outras palavras, o limite do valor-p tende a zero. ► De fato: ► ● ● > t.test(b)$p.value [1] 0 Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 28/34 4.2.3 - Conclusões ● Testes de aderência à distribuição normal: ► O resultado é interessante porque os testes tem hipóteses nulas opostas: A hipótese nula é rejeitada quando o valor-p é menor que o alfa (0,05). Shapiro-Wilk assume que a distribuição não é normal, até prova em contrário. Os demais partem do pressuposto que a distribuição é normal a menos que haja forte evidência do oposto. Aliás, até mesmo o teste não-paramétrico de sinais de Wilcoxon deu o mesmo valor-p! Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 29/34 4.2.3 - Conclusões ● Teorema Central do Limite ►A média aritmética de um número suficientemente grande de iterações de variáveis aleatórias independentes, cada qual com valor esperado bem-definido com variância bemdefinida, terá distribuição aproximadamente normal. ►A taxa de acerto do sistema por segundo é uma média, então a média de 288 ou 4,8 mil médias resulta em distribuição normal. ►O volume dos dados é tão grande que a diferença estatística entre os diversos métodos torna-se irrelevante. ►A comparação de intervalos de confiança das médias será suficiente para diferenciar as populações. Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 30/34 4.2.3 - Conclusões Resumo dos Dados Baseline Bind-Mounted NFS Amostras 288.000 4.800 288.000 4.800 288.000 4.800 Média 38,06820 38,08489 33,42976 33,40216 22,03257 22,02696 IC min 38,05029 37,94630 33,40917 33,24077 22,01919 21,92205 IC max 38,08612 38,22349 33,45034 33,56354 22,04596 22,13188 Máximo 62,50 59,14 100,00 100,00 44,39 40,32 Mínimo 5,56 20,92 -1,00 -1,00 0,00 10,34 Desvio Padrão 4,904528 4,897924 5,637106 5,703357 3,664335 3,70767 Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 31/34 4.2.3 - Conclusões Resumo dos Dados Baseline Bind-Mounted NFS Amostras 288.000 4.800 288.000 4.800 288.000 4.800 Média 38,06820 38,08489 33,42976 33,40216 22,03257 22,02696 IC min 38,05029 37,94630 33,40917 33,24077 22,01919 21,92205 IC max 38,08612 38,22349 33,45034 33,56354 22,04596 22,13188 Máximo 62,50 59,14 100,00 100,00 44,39 40,32 Mínimo 5,56 20,92 -1,00 -1,00 0,00 10,34 Desvio Padrão 4,904528 4,897924 5,637106 5,703357 3,664335 3,70767 Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 32/34 4.2.3 - Conclusões Gráfico box sem outliers Análise de Performabilidade de uma aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers 33/34 Pós-graduação em Ciência da Computação Princípios e Técnicas da Análise Estatística Experimental Análise de Performabilidade de aplicação I/O Bound em um Cluster de Sistemas Operacionais baseado em Containers Erico Augusto C. Guedes <[email protected]> Estêvão Chaves Monteiro <[email protected]>