Using Virtualization to Improve Software Rejuvenation
Departamento de Eletrônica – Escola Politécnica Programa 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
CPU Dual AMD64 Opteron
(2000MHz)
Dual Core AMD64 Opteron 165
(1800MHz)
Intel Celeron (1000MHz)
Memória 4GB 2GB 512MB
Disco 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 softwares Apache Tomcat 5.5.20, Axis 1.3, MySQL 5.0.18
Apache Tomcat 5.5.20, Axis 1.3
Resultados - Sobrecarga
12% 14%
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-Rejuv Reinício do Tomcat
Reinício do XEN-VM
Reiní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 em Clusters
Figura 7:
Tomcat/Axis
Resultados – Aplicabilidade em Clusters
Figura 8:
Tomcat/Axis
SLA=75
Resultados –
c lean resart vs blind restart
Figura 9:
Tomcat/Axis