Apresentação do Rafael

Propaganda
Departamento de Eletrônica – Escola Politécnica
Programa de Engenharia Elétrica – COPPE
Using Virtualization to Improve
Software Rejuvenation
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
• Exigência de disponibilidade dos servidores
• 100 mil a 6 milhões de dólares por hora offline
• Técnicas
• Redundância de servidores
• Balanceamento de carga
• Recuperação de falhas
• Auto-cura
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.25smp
Linux 2.6.16.21-0.25smp
Linux 2.6.15-p3Netboot
Java JDK
1.5.0_06, 64-bit Server
VM
1.5.0_06, 64-bit Server 1.5.0_06-b05
VM
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%
Figura 2: Tomcat/Axis
14%
Resultados - Efetividade
Figura 3: Tomcat/Axis
Resultados - Efetividade
Figura 4: TPC-W
Resultados - Indisponibilidade
Figura 5: Tomcat/Axis
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)
107301 requisições / 15 erros de sessão
117750 requisições / 0 erros de sessão
Figura 6: Tomcat/Axis
Resultados – Aplicabilidade em
Clusters
Figura 7: Tomcat/Axis
Resultados – Aplicabilidade em
Clusters
SLA=75
Figura 8: Tomcat/Axis
Resultados –
clean resart vs blind restart
Figura 9: Tomcat/Axis
Download