Geradores de Carga de Trabalho para Servidores Web Dayse Silveira de Almeida Orientadora: Regina...
Transcript of Geradores de Carga de Trabalho para Servidores Web Dayse Silveira de Almeida Orientadora: Regina...
Geradores de Carga de Trabalho para Servidores Web
Dayse Silveira de AlmeidaOrientadora: Regina Helena Carlucci Santana
Roteiro Geradores de Carga de Trabalho:
W4Gen; Jmeter; SPECWeb2005; WebStone; Httperf; Geist.
Desenvolvido por Silva (2006), em Java; Objetivo: gerar cargas de trabalho sintéticas
para modelos de servidores Web; Carga é gerada a partir da caracterização de
nove logs de servidores Web Apache; CISC (Centro de Informática de São Carlos), da
Prefeitura de Londrina e do Br10, Cdmil, Tum, Copi, Stanford , Veenet e Connectmed.
Três categorias: Acadêmico; Notícia/informativo; Tradicional.
World Wide Web Workload Generator (W4Gen)
World Wide Web Workload Generator (W4Gen) Utilizou-se a biblioteca PSOL (Probability/
Statistics Object Library) [Siegrist, 2005];
Adicionou-se Pareto Geral;
Adaptou-se a função Geométrica: Características do objeto e do código de resposta.
Modelo da Carga de Trabalho Características:
Intervalo de chegada - [0, +∞) ; Classe do objeto - [imagem, html, dinâmico, texto,
documento, scritp, binário, áudio, vídeo]; Código de reposta - [2xx, 3xx, 4xx, 5xx] ; Tamanho do objeto - [0, +∞).
Figura 1: Formato da requisição do W4Gen.
Configuração da Carga de Trabalho Sua carga pode ser configurada:
Web; Ambientes pré-definidos:
Site acadêmico; Site de notícia; Site tradicional.
Permite selecionar uma função de distribuição; Criação de um novo modelo de carga.
Configuração da Carga de Trabalho Código de resposta:
Requisição 200 – código de resposta 200 é acrescendo a todas as requisições;
Função de distribuição – Geométrica, parâmetro deve ser configurado;
Valores de porcentagem – quatro tipos devem ser configurados.
Classes de objeto: Função de distribuição – Geométrica, parâmetro deve ser
definido; Valores de porcentagem – nove tipos devem ser configurados.
Intervalo de chegada: Função de distribuição e parâmetros configuráveis; Sobrecarga: comprimir o tempo de chegada entre as
requisições. Tamanho do objeto:
Função de distribuição e parâmetros configuráveis. Mudanças nos valores padrão podem reproduzir um
comportamento diferente da realidade da Web.
JMeter Ferramenta de código aberto, escrita em Java; Desenvolvida pelo Apache Software
Foundation; Criada para realizar testes de desempenho
em aplicações Web; Testa recursos estáticos e dinâmicos:
Arquivos estáticos; Java Servlets; Scripts Pearl; Java Objects; Servidores FTP.
JMeter Usado para simular cargas para testar o
desempenho de servidores e redes. Diferentes tipos de servidores:
Web – HTTP (HyperText Transfer Protocol) e HTTPS (HyperText Transfer Protocol Secure);
SOAP (Simple Object Access Protocol); Banco de dados via JDBC (Java Database
Connectivity); LDAP (Lightweight Directory Access Protocol); JMS (Java Message Service); E-mail – POP3 (Post Office Protocol - Version 3);
Simula o acesso de diversos usuários concorrentes.
SPECWeb2005 Desenvolvido pela Standart Performance
Evaluation Corporation (SPEC); Objetivo: Medir o desempenho de servidores
Web respondendo a requisições a páginas estáticas e dinâmicas;
Visa avaliar sua sobrecarga; Plataformas:
Windows; Unix.
Componentes Lógicos Clientes – geradores de carga; Cliente principal – controla os clientes, dispara rotinas de
inicialização, armazena resultados; Servidor – coleção de hardware e software que controla as
requisições; BeSim – simula um back-end, e contém informações usadas
pelo Servidor Web.
Figura 2: Componentes lógicos do SPECWeb2005 (SPEC, 2005).
Funcionamento Número de sessões simultâneas corresponde
ao número de threads; “Sessão de usuário” passa por vários estados; Cliente principal controla as fases de
execução:
Figura 3: Fases do SPECWeb2005 (SPEC, 2005).
Funcionamento Cronômetro é iniciado antes do envio da
requisição e parado quando recebe último byte da resposta;
Respostas válidas: Tempo agregado a página; Conferido com os valores de QoS; Campo de QoS correspondente incrementado.
TIME_GOOD, TIME_TOLERABLE ou TIME-FAIL.
Ao término da execução: Dados de todos os clientes são agregados; É determinado se os critérios de QoS foram
alcançados.
Geração da Carga de Trabalho Gera cargas baseadas em aplicações Web
reais, baseando-se em logs e estatísticas coletadas;
Três tipos: Banking; E-commerce; Support.
Cada requisição: execução de um script dinâmico e, arquivos embutidos;
Requisitos de QoS: atraso de retorno e taxa de bytes.
WebStone Originalmente desenvolvido pela Silicon Graphics; Mindcraft Inc. adquiriu seus direitos; Carga é gerada através da simulação de vários
clientes; Webmaster – programa que controla o teste.
Figura 4: Elementos de um teste usando o WebStone (WebStone, 2002).
WebStone Envio de requisições HTTP/1.0 (GET) para arquivos
específicos; Conjunto de arquivos:
Baseado no modelo do site da Silicon Graphics, de 1995; Pode ser alterado; Padrão é pequeno;
Três tipos de acesso: HTML (HyperText Markup Language); CGI (Common Gateway Interface); API (Application Programming Interface).
Características foram obtidas através de padrões de acesso a sites populares.
Resultados: vazão, latência de conexão e latência da requisição.
Httperf Suporta HTTP/1.0 e HTTP/1.1; Dois tipos de geradores de carga:
Geram um número fixo de requisições HTTP do tipo GET.
De requisições – 1. Gera conexões e cada uma executa uma
requisição (HTTP/1.0);2. Cria sessões, constituídas de rajadas de
requisições e tempo de pensar. De URL –
1. Repete a seqüência de URLs;2. Flui por um conjunto fixo de URLs a uma
determinada taxa.
Geist Gera carga com conteúdo de e-commerce; Não simula explicitamente, usuários,
protocolos ou componentes de rede; Propriedades do tráfego são modeladas
diretamente no servidor; Gerador de trace define 30 parâmetros aos
quais podem ser atribuídos valores em um arquivo de entrada;
Gera um arquivo de trace, que pode ser dividido entre múltiplos clientes;
Gerador de tráfego também é controlado atribuindo valores a parâmetros pré-definidos.
Comparação
* Não simula usuários explicitamente;** Considera o impacto do comportamento do usuário nas propriedades temporais do
tráfego.
Número de Usuários/ Clientes
Protocolos Conteúdo Sessão
W4Gen Múltiplos HTTP/1.0 eHTTP/1.1
Estático e dinâmico
Não
JMeter Múltiplos HTTP e HTTTPS
Estático e dinâmico
Não
SPECWeb2005
Múltiplos HTTP e HTTPS Estático e dinâmico
Sim
WebStone Múltiplos HTTP/1.0 Estático e dinâmico
Não
Httperf Múltiplos HTTP/1.0 eHTTP/1.1
Estático e dinâmico
Sim
Geist Múltiplos * HTTP e HTTPS Estático e dinâmico
Sim **
Referências Httperf (2009). Disponível em
http://www.hpl.hp.com/research/linux/httperf/.
JMeter (2008). Disponível em http://jakarta.apache.org/jmeter.
Silva, L. H. C. (2006). Caracterização de Carga de Trabalho para Testes de Modelos de Servidores Web. Dissertação de mestrado, Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo.
SPEC (2005). Standard Performance Evaluation Corporation Web
2005 (SPECWeb2005). Disponível em http://www.spec.org.
WebStone (2002). The Benchmark for Web Servers. Disponível em http: //www.mindcraft.com/webstone/.