using virtualization to improve software rejuvenation departamento de eletrônica – escola...

Post on 22-Apr-2015

107 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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

top related