using virtualization to improve software rejuvenation departamento de eletrônica – escola...
TRANSCRIPT
Using Virtualization to Improve Software Rejuvenation
Departamento de Eletrônica – Escola PolitécnicaPrograma de Engenharia Elétrica – COPPE
Rafael dos Santos Alves
http://www.gta.ufrj.br
Informações
• Autores• Luis Moura Silva• Javier Alonso• Paulo Silva• Jordi Torres• Artur Andrzejak
• Publicação• Sixth IEEE International Symposium on
Network Computing And Applications (NCA 2007)
Introdução
Software Rejuvenation
• Definição• “Software rejuvenation is the concept of
gracefully terminating an application and immediately restarting it at a clean internal state”
• Motivação• Software aging• Degradação da aplicação• Ex.: vazamento de memória
Software Rejuvenation
• Soluções• Baseadas em temporização• Pró-ativas• Micro-rebooting• Redução do tempo de reparo• Reinício de partes da aplicação• Exige alteração do código
• Proposta• Virtualização
Requisitos da Proposta
• Aplicável a qualquer aplicativo inalterado• Redução do tempo de reparo• Ausência de requisições perdidas• Auto-cura• Baixa sobrecarga do sistema• Aplicável a qualquer hardware• Facilidade de implementação e manutenção
VM-Rejuv
Figura 1: Arquitetura VM-Rejuv
VM-Rejuv
• Procedimento geral• VM3 em espera e VM2 ativa• VM-LB (VM1) procura por potenciais
anomalias• VM3 é iniciado• Passa a receber as novas requisições
• Estado de VM2 é migrado para VM3• VM2 conclui todas as operações em
andamento• VM2 é reiniciado
Módulos
• Load -balancer• Interceptação de todas as requisições• Implementação: LVS (Linux Virtual Server)
• Watchdog• Monitoramento de parâmetros• CPU, uso de memória, espaço em disco
etc• Implementação: Ganglia
• Data-collector• Aplicação de filtros em parâmetros
Módulos
• Aging-detector• Análise• Parâmetros de sistema• Erros em protocolos de comunicação• Códigos de erro em logs• Sensores específicos de aplicações• Métricas de desempenho
• Implementação• Análise de vazão
Módulos
• Anomaly-detector• Complemento ao aging-detector• Análise• Anomalias a nível de aplicação• Erros em protocolos• Violação de limiares
• Implementação• Em desenvolvimento
Módulos
• SRA-Coord• Coordena os SRA-Agents
• SRA-Agent• Responsável pela operação de rejuvenation
• S-Probe• Sonda geral
• P-Probe• Análise de métricas específicas
• LogProbe
Ambiente de Análises
Servidores: Katrina, Wilma
Servidores: Tania, Nelma
Clientes
CPUDual AMD64 Opteron (2000MHz)
Dual Core AMD64 Opteron 165 (1800MHz)
Intel Celeron (1000MHz)
Memória 4GB 2GB 512MBDisco Rígido 160GB(SATA2) 160GB(SATA2)Espaço para Swap
8GB 4GB 1024MB
Sistema Operacional
Linux 2.6.16.21-0.25-smp
Linux 2.6.16.21-0.25-smp
Linux 2.6.15-p3-Netboot
Java JDK 1.5.0_06, 64-bit Server VM
1.5.0_06, 64-bit Server VM
1.5.0_06-b05 Standard Edition
Tomcat JVM tamanho heap
512MB 512MB
Outros softwaresApache Tomcat 5.5.20, Axis 1.3, MySQL 5.0.18
Apache Tomcat 5.5.20, Axis 1.3
Resultados - Sobrecarga
14%12%
Figura 2: Tomcat/Axis
Resultados - Efetividade
Figura 3: Tomcat/Axis
Resultados - Efetividade
Figura 4: TPC-W
Figura 5: Tomcat/Axis
Resultados - Indisponibilidade
Resultados - Indisponibilidade
VM-RejuvReinício do
TomcatReinício do
XEN-VMReinício da máquina
Vazão média (req/s)
143,8 134,7 128,8 97,3
Total de Requisições
86313 80847 77292 58401
Requisições perdidas
0 476 536 1902
Requisições lentas
0 10 0 0
Indisponibilidade (ms)
0 12490 56143 200722
Resultados – Sobrecarga (2)
Figura 6: Tomcat/Axis
117750 requisições / 0 erros de sessão
107301 requisições / 15 erros de sessão
Resultados – Aplicabilidade emClusters
Figura 7: Tomcat/Axis
Resultados – Aplicabilidade emClusters
Figura 8: Tomcat/Axis
SLA=75
Resultados – clean resart vs blind restart
Figura 9: Tomcat/Axis