Page 1

eudesdanilo@gmail.com

12/08/2009

http://www.4shared.com/file/83875690/f15eae9/Desempenho_de_Sistemas_-_Cesupa.html


Bibliografia ď‚— R. Jain, "The Art of Computer

Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling," Wiley- Interscience, New York, NY, April 1991


INDICE 1 – Motivação a Avaliação de Desempenho 2 – Aplicabilidade 3 – Medidas de Desempenho 4 – Avaliação de Desempenho 5 – Metodologia de uma Análise de Desempenho


1 - Motivação à Avaliação de Desempenho


Contexto Geral: Desempenho é o critério “chave” para o projeto, desenvolvimento e uso de sistemas de TI.

Desta forma qualquer profissional que pretenda exercer atividades relativas a sistemas de TI, deve estar apto a tratar requisitos de performance de seus sistemas e a comparar diferentes alternativas, com o objetivo de encontrar a solução que melhor se adapte às suas expectativas

Diferença entre eficiência x eficácia ?


Finalidade: Atingir o maior objetivo da análise de performance, ou seja, estabelecer: Desempenho X Custo para isto: Profissionais de TI precisam, minimamente, de conhecimentos básicos da terminologia e técnicas de avaliação de desempenho.

“Fim do Achometro”


Resumindo: “I keep six honest men. They taught me all I Knew. Their names are: What and Why and When and How and Where and Who.” Kipling. “Eu tenho seis homens honestos. Eles me falaram tudo que eu sei. Seus nomes são: O QUE, PORQUE, QUANDO, COMO, ONDE e QUEM”


Quem? O que? Quando? Como? Onde? Porque?


O que é desempenho ? [Aurélio] desempenho. [Dev. de desempenhar.] s.m.,

1. Ato ou efeito de desempenhar(-se). 2. Mil. Conjunto de características ou de possibilidades de atuação de uma aeronave, tais como velocidade de cruzeiro, velocidade de pouso, capacidade de carga, autonomia de vôo, etc.

3. Teat. V. interpretação.


O que é desempenho ? [Michaelis] de.sem.pe.nho sm

(des+ empenho)

1. Ação ou efeito de desempenhar. 2. Resgate do que estava empenhado. 3. Cumprimento de obrigação ou promessa.

4. Qualidade da representação ou interpretação de um artista. 5. Inform Rendimento total que, juntamente com a facilidade de utilização, constitui um dos principais fatores determinantes da produtividade dos componentes físicos e do logicial de um sistema de computação.


O que é desempenho ? [Webster] per.for.mance n p*(r)-’for-m*n(t)s\

1. a: the execution of an action b: something accomplished : DEED, FEAT 2.

: the fulfillment of a claim, promise, or request: IMPLEMENTATION

3. a: the action of representing a character in a play

b: a public presentation or exhibtion 4. a: the ability to perform: EFFICIENCY b: the manner in which a mechanism performs 5.

: the manner of reacting to stimuli: BEHAVIOR


Desafios

“I hear and I forget. I see and I remember. I do and I understand.” Provérbio Chinês.

Eu escuto e eu esqueço Eu vejo e eu lembro Eu faço e eu entendo


Principais causas das falhas nos Websites 20% Infra-estrutura Servidores ou redes “caem”; Falha de sistema operacional; Desastres;

40% Problemas de Implementação de Softwares Limitações de recursos/banco de dados; Baixa qualidade dos softwares; Incompatibilidade entre SW/HW;

40% Erros de Operação Requisitos com definições pobres; Não execução de tarefas obrigatórias; Mudanças em componentes; 13


Servidores e Serviços  O que acontece quando 10.000 usuários requisitam ao mesmo tempo um único serviço na WEB?  Como os provedores de serviços na WEB garantem a qualidade do serviço?

 Como um provedor de serviço poderia diferenciar a qualidade de serviço oferecida aos vários clientes com base em acordos de SLA? Ex: Promoção da Gol, Último dia de entrega do Imposto de rendavotação Big Brother, ... 14


Medição do Desempenho IDEAL: obter um número que caracterize completamente o desempenho da máquina IMPOSSÍVEL:

complexidade dos sistemas grande variedade de aplicações grande variedade de condições de utilização

CUIDADO: os números fornecidos pelos vendedores podem ser enganadores. • em que condições foram conseguidos? • reflectem a carga real que o utilizador vai impor ao sistema?

15


Medição do Desempenho Porquê medir o desempenho? • escolha do hardware mais apropriado

• escolha do software (ex. compilador) mais apropriado • escolha do algoritmo mais eficiente • identificação de ineficiências num sistema (hw, sw)

• selecção de alternativas de desenho • qual o instruction set mais apropriado

• selecção da organização do processador • selecção da organização da memória

• ...

16


Desafios 1 Os desempenhos de dois sistemas A e B foram medidos (aferidos) em transações por segundo. Os resultados estão na tabela abaixo: Sistema

Carga1

Carga2

A

20

10

B

10

20

Há 3 maneiras diferentes de comparar a performance dos 2 sistemas.


Desafio 1 A primeira é obter a média de desempenho entre as 2 cargas. Como demonstrado na tabela 1: Sistema

Carga1

Carga2

Média

A B

20 10

10 20

15 15 Tab. 1

A conclusão, neste caso, é a de que os sistemas A e B são igualmente bons.


Desafio 1 A segunda forma é considerar a razão de performance tendo o sistema B como base. Como demonstrado na tabela 2: Sistema

Carga1

A B

Carga2

20 10

10 20

Tab. Referência

Sistema

Carga1

Carga2

Média

A

2

0.5

1.25

B

1

1

1 Tab. 2

Neste caso, a conclusão é que o sistema A é melhor que o sistema B.


Desafio 1 A terceira forma é considerar a razão de performance tendo o sistema A como base. Como demonstrado na tabela 3: Sistema

Carga1

A B

Carga2

20 10

10 20

Tab. Referência

Sistema

Carga1

Carga2

Média

A

1

1

1

B

0.5

2

1.25 Tab. 3

Neste caso, a conclusão é que o sistema B é melhor que o sistema A.


Apreveitando para…  Lembrar da notação matemática que trata a “média”.  Se x1, x2, x3, …, xn são n valores observados de um parâmetro de

carga de trabalho, a medida mais comum é a média aritmética dada por: 1 n ¯ =x ─  xi n i=1

Existem casos, entretanto, onde a média aritmética não é a medida mais apropriada. Neste caso a mediana, a moda, a média geométrica ou a média harmônica deverão ser usadas… Mas isto, por enquanto, é uma outra história…

Que tal uma revisão de probabilidade e estatística???


Desafio 2 Um servidor de arquivos recebe requisições para a leitura de blocos de arquivos de 8 KB. A taxa de requisições é de 900 requisições/seg. Se 30% das requisições geram um cache hit, no próprio cliente, o servidor estará de fato recebendo quantas requisições/seg? 900x0,3=270

900-270=630 requisições/seg

Supondo ainda que 25% dessas requisições podem ser satisfeitas a partir do cache de memória principal do servidor, quantas requisições chegam aos recursos de I/O deste servidor?

630x0,25=157,5

 630-157,5=472,5 requisições/seg chegam aos recursos de I/O do servidor.


Desafio 3 Uma vez que um servidor pode receber requisições de vários clientes, uma fila pode ser formada diante deste. Se somente uma requisição é atendida por vez, os recursos de máquina do servidor poderão ser subutilizados, o throughput poderá ser baixo e o tempo de resposta aos clientes crescerá na medida do aumento da carga do servidor. Processo Cliente

Requisição Resposta

Processo Servidor

TCP

TCP

IP

IP

Camada de Rede

Camada de Rede

Host A

Host B

REDE

Sabendo-se que a maioria dos servidores implementa múltiplos processos (multithreads) de execução, de forma a lidar com a fila de requisições que chegam dos clientes. O uso de multithreads contribui para a redução de tempo de resposta por requisição.


Desafio 3 A tabela a seguir apresenta experimentos que relacionam o tempo de resposta com o número de threads ativas em um servidor que recebe requisições a taxa de 2,5 requisições/seg. Cada requisição usa 0,07s de tempo de CPU e 0,2s de tempo de disco.

Número de Thre ads

Tempo de resposta (seg.)

1 2 3 4 5

0,831 0,526 0,492 0,486 0,485

Conclusões: Como mostra a tabela, ocorre uma redução significante no tempo de resposta quando o número de threads passa de uma para duas. Na medida do crescimento daquele número, nota-se uma melhora cada vez menos significativa no tempo de resposta. De fato, a partir de quatro threads, a melhora é negligenciável. (curva joelho ...)


Aproveitando…  Relembrar das aulas de redes de computadores e

arquiteturas de sistemas sobre funcionamento de transações em ambientes cliente/servidor e sobre terminologias do tipo:  Cache  Memória RAM  Dispositivos de I/O  DMA  Pacotes

 Frames  Multithreads


Ex: Gerenciador de Tarefa do Windows


Ex: Anรกlise de Processos do Linux: TOP


INDICE 1 – Motivação a Avaliação de Desempenho 2 – Aplicabilidade 3 – Medidas de Desempenho 4 – Avaliação de Desempenho 5 – Metodologia de uma Análise de Desempenho


2 - Aplicabilidade


 Passos para um estudo de avaliação de desempenho:  Definir os objetivos e limites do sistema.  Selecionar as métricas

 Selecionar a técnica de avaliação  Analisar e interpretar os dados  Refazer todo o estudo, se necessário

 Apresentar os resultados  Interpretar os resultados


 Sistemas-Alvo da avaliação:  Sistemas com recursos escassos  Sistemas críticos em relação ao tempo de resposta  Sistemas que devem possuir alta disponibilidade  Sistemas com alto grau de aleatoriedade


Engenharia de Desempenho  A visão, o significado e os conceitos associados a utilização

de sistemas de TI tem mudado de maneira quase vertiginosa.

 Faz-se necessário abordagens mais abrangentes.  É preciso encaminhar, ainda na fase de projeto, todos os

principais aspectos envolvendo as complexas inter-relações entre computadores, aplicações e as tecnologias de TI (S.O, BD, redes,…)


Engenharia de Desempenho  Visa empregar, de maneira efetiva a Tecnologia da

Informação.  Necessita de:  Conhecimento tecnológico atualizado;  Conhecimento de técnicas estatísticas;

 Conhecimento de modelagem matemática.

 Permite estimar, com apurado grau de certeza, o

desempenho de um sistema antes mesmo que este tenha sequer saído do papel.


Engenharia de Desempenho  Testam-se várias opções, simulando cada variação para

determinar qual delas oferece a melhor resposta em termos da relação custo/desempenho.  São as técnicas e ferramentas oriundas da engenharia de

desempenho que permitem, também, planejar a futura capacidade dos sistemas.  Avalia-se o impacto que potenciais mudanças na carga

(crescimento do número de usuários, novas aplicações e serviços, etc.) provocariam no sistema.


Engenharia de Desempenho  Cálculos simplificados (com base em tabelas padronizadas,

“Achometria” garantem:

ou “Experiências” de amigos ou colegas) não

 Uma solução satisfatória para as questões de desempenho.

 A satisfação dos usuários com o desempenho dos sistemas e

das aplicações.  O alcance de uma melhor relação Custo / Desempenho.  A engenharia de desempenho ajuda na tomada de decisão a

partir de uma base sólida e científica.


Terminologia de Desempenho  A “engenharia de desempenho” avalia projetos de acordo

com seus “níveis de desempenho”, medidos (na grande maioria), na forma de throughput e Tempo de Resposta.

 O throughput, é medido em termos de mensagens,

requisições, transações ou sessões determinado período de tempo.

operadas

num

 Exp.: transações/seg., I/O/seg. ou bits/seg.

 O tempo de resposta é a medida da quantidade de tempo

necessário para a realização do serviço.

 Exp.: mede-se um certo número de transações realizadas

e estima-se o tempo médio por transação.


Problemas de Desempenho na Internet          

Natureza imprevisível dos pedidos e serviços pela WEB Aplicação R Flash Crowds = Pico de Carga E Local geográfico do cliente C A L Dia da semana, horário N A Á Tamanho dos objetos M L Software de servidor A I Ç Hardware S Ã E Largura da banda da rede O Infra-estrutura 37


Componentes do tempo de resposta de um site T_Internet

T_cliente

Estação Cliente

Internet

T_rede_interna

T_servidor

Rede Interna Site Web Servidor WEB

T_resposta = T_cliente + T_Internet + T_rede_interna + T_servidor Estação Cliente 38


Tempo de Resposta na Comunicação  T_cliente: Tempo total gasto pelo browser, processamento e envio das requisições e recebimento das respostas até a internet;  T_internet: Tempo de propagação dos dados na internet (REQUEST/RESPONSE);  T_rede_interna: Tempo total gasto na rede interna do servidor, incluindo-se aí firewall, proxies e outros elementos de rede;  T_servidor: Tempo de processamento no servidor, incluindo acesso a banco de dados, componentes, etc. 39


Implementação de análise de Rede  3COM Analyser:

Verifica a estrutura física da rede. Aferição entre Delay x Cascateamento  MRTG

Consumo de Banda da rede; Análise de solicitação em determinada placa de rede;  Whats up

Monitoração quanto a disposição do Link; Implementação em Laboratório 40


Trabalho de Análise de Rede  Imagine que vocês são gerente de TI de uma empresa, onde

existe uma reclamação de lentidão nos sistemas. Esta reclamação foi feita diretamente por sua chefia imediata. Faça um relatório expondo a atual situação de sua rede elaborando uma análise de tráfego, banda e estrutura física.

41


INDICE 1 – Motivação a Avaliação de Desempenho 2 – Aplicabilidade 3 – Medidas de Desempenho 4 – Avaliação de Desempenho 5 – Metodologia de uma Análise de Desempenho


3 – Medidas de Desempenho


Medidas de Desempenho  Pelo lado dos usuários, o desempenho é o principal fator

de comparação entre projetos.

 Neste caso, as medidas relacionadas à qualidade dos

serviços prestados pelo sistema (tempo de resposta é o mais comum) são as preferidas.

 Outros fatores tais como confiabilidade,

níveis de manutenção requeridos ou escalabilidade são também importantes.

 Além destes, não se pode esquecer dos custos!!


Terminologia de Desempenho  Adotando “desempenho” como:  a medida da “capacidade de resposta” de um sistema, e ainda:

 A estratégia que, a partir de métrica(s) e técnica(s), apresenta

diagnósticos sobre o comportamento do sistema ao longo do tempo.

 Como analisar o desempenho de um sistema? Dois

passos:  Seleção de Técnicas de desempenho.  Seleção de Métricas de desempenho


Técnicas de Desempenho  Técnicas de avaliação:  Diferentes formas utilizadas para abordar / tratar a

performance de um sistema.

 Há 3 técnicas para avaliar performance:  Medições (aferição),

 Análise quantitativa (modelagem analítica)  Simulação


Técnicas de Desempenho Técnicas de AD

Aferição Benchmarks

Simulação

Modelagem Redes de Filas

Protótipos

Redes de Petri

Coleta de Dados

Statecharts


Técnicas de Desempenho

 Modelagem analítica:

 Conjunto de fórmulas e/ou algoritmos que determinam as medidas de

desempenho (métricas) em função de um conjunto de parâmetros de carga (entrada).  Modelos determinísticos: análise de limites e de valores médios.  Modelos probabilísticos: processos estocásticos, modelos de filas.

 Modelos de simulação  Programas simuladores  Linguagens de programação

 Aferição em sistemas reais  Instrumentação

 Monitoração  Benchmarks


Seleção das Técnicas de AD  Modelagem analítica  Pode ser usada em qualquer estágio do sistema  Bastante preciso e simples,

 Fornece resultados rápidos  Baixo custo  Facilita projeto e configuração do sistema:  melhora o conhecimento sobre o sistema  avaliação dos compromissos entre vários parâmetros  impacto de cada parâmetro  Responde perguntas do tipo what if (E se ...)  Captura aspectos mais gerais do funcionamento do sistema  não captura alguns aspectos do funcionamento. ─ Uma das preferidas para validação.


Seleção das Técnicas de AD  Simulação  Custo mais elevado: simulação deve cobrir vários estados, sendo necessárias   

várias execuções. Requer maior tempo para implementação. Captura detalhes do funcionamento do sistema. Possibilita uma excelente pesquisa quanto a melhor combinação de valores de parâmetros, entretanto não traduz claramente a real interação entre os mesmos. Responde perguntas do tipo what if.

 Aferição     

Alta complexidade, muitas variáveis: alto custo Difícil avaliar impacto de fatores isolados: falta de controle Alta precisão somente se for realizada corretamente Possui uma maior credibilidade Nunca se está livre de Murphy!


Exemplos de Aplicação •Modelagem analítica responde:  Como o tempo de resposta de um banco de dados de transações varia com a taxa de

transações?  Qual o impacto no tempo de resposta de um upgrade de CPU? De disco?  Em média, qual o número de processos que ficam bloqueados no semáforo X da aplicação Y?

•Simulação responde:  Qual a política de replicação de base de dados que resulta em maior chance de

sucesso? •Aferição responde:  Quais os principais componentes do tempo de resposta em um servidor Web?  Qual o impacto de uma invasão do tipo DDOS no desempenho de servidores Web

tradicionais?


Técnicas de Desempenho 

A escolha depende: 

Escopo (aspectos gerais x detalhes) e estágio

Tempo e recursos (de pessoal e $) disponíveis

Precisão desejada

Seja qual for a escolha: 

Não acredite nos resultados de simulação até que sejam validados por análises ou experimentos

Não acredite nos resultados de modelos analíticos até que sejam validados por simulação ou experimentos

Não acredite nos resultados de experimentos até que sejam validados por modelos analíticos ou simulação

É NECESSÁRIO VALIDAR OS RESULTADOS!!!


Seleção de Técnicas de Desempenho Critério

Modelagem Analítica

Simulação

Aferição

Estágio

Qualquer

Qualquer

Após protótipo

Tempo necessário

Pequeno

Médio

Variável

Ferramenta

Análise

Linguagem de Programação Variável

Instrumentação e Monitoração

Avaliação de Intercâmbio

Fácil

Médio

Difícil

Custo

Pequeno

Médio

Grande

Confiabilidade


Técnicas de Desempenho Exercício: 

Qual a técnica mais apropriada para: 1. 2. 3.

Selecionar um computador para própria aquisição Selecionar 100 micros para sua empresa a pedido do seu chefe. Comparar duas arquiteturas de redes, tendo por base que o presidente da empresa exige a resposta: a. b. c.

Para ontem Modelagem Analítica Para a próxima semana Simulação Como meta de implantação para o próximo ano. Aferição


Métricas de Desempenho  Métrica: critério usado para quantificar a performance de um sistema.  Exemplos de métricas geralmente usadas:  Utilização

 Vazão (Throughput)  Tempo de Resposta


Seleção de Métricas de Desempenho Métricas Apropriadas (exemplos): • Recursos tipo memória e processador: ─ Utilização

• Sistemas tipo Pedágio: ─

Vazão (Throughput): Visão dos servidores e administradores da rede. É medido em termos de mensagens, chamadas, transações ou sessões operadas num determinado período de tempo.

• Sistemas tipo caixa eletrônico: ─

Tempo de Resposta: Qualidade dos serviços ofertados aos clientes. É a medida da quantidade de tempo necessário para a realização do serviço. Geralmente é medido em termos médios.

• Sistemas tipo agência bancária: ─ Nº médio de clientes na fila 56


Seleção de Métricas de Desempenho 

Para cada estudo de desempenho, uma série de métricas devem ser escolhidas.

Uma boa dica para não se “perder” pode ser seguir os passos: 1. 2. 3.

Listar todos os serviços oferecidos pelo sistema. Para cada requisição de serviço feito ao sistema, existem várias “respostas” possíveis. Em geral, estas respostas podem ser classificadas em 3 categorias, ou seja, o sistema pode atender o request: a)

b) c)

Corretamente, Incorretamente, ou Não atender o serviço.

Observe a figura a seguir: 57


Seleção de Métricas de Desempenho Requisição para serviço i

Tempo

DESEMPENHO

Feito corretamente

Taxa

Recurso Feito CONFIABILIDADE

Sistema

Feito incorretamente

DISPONIBILIDADE

Não pode fazer

Evento k

Probabilidade Erro j Tempo entre erros

Duração do evento Tempo entre eventos


Seleção de Métricas de Desempenho A partir da lista de serviços e possíveis respostas:  Execução correta: o desempenho é medido em termos de: 

Tempo de resposta (responsibilidade), taxa de processamento/serviço (produtividade), utilização de recursos (utilização)

 Execução incorreta: confiabilidade  identificação das classes de erros  probabilidade de cada tipo de erro, tempo entre erros

 Não execução: disponibilidade  Identificação das possíveis causas  Uptime (% tempo disponível),  Probabilidade de downtime, tempo entre falhas (MTTF = Mean Time To Failure)

Concluindo: para cada serviço ofertado pelo sistema deve haver uma série de métricas envolvendo cada uma das 3 categorias!


INDICE 1 – Motivação a Avaliação de Desempenho 2 – Aplicabilidade 3 – Medidas de Desempenho 4 – Avaliação de Desempenho 5 – Metodologia de uma Análise de Desempenho


4 - Avaliação de Desempenho

61


Indicadores de Qualidade de um Site  Métricas envolvidas:  Tempo de resposta total formado pela somatória de diversos componentes  Throughput (vazão)  conexão (hits/s)  transmissão (bytes/s)  Taxa de erros 62


Técnicas de AD: Aferição Introdução

 Para responder a questões quantitativas sobre o

comportamento de computadores e redes, é preciso medir (aferir).

 Aferir um sistema é o processo de observar a

operação deste ao longo de um período de tempo (janela), armazenando valores referentes aquelas variáveis quantitativas relevantes à sua compreensão.

63


Passos para o processo de Aferição Aplicações Soft. Servidor

Sist. Operacioal Hardware

Especificar pontos de referência

Especificar Medidas

Técnicas de Instrumentação

Análise e Tratamento de Dados (estimar parâmetros)

Instrumentos de Medição 64


Aferição Especificar medidas

 A principal fonte de informação constitui-se do

conjunto de medidas de desempenho coletadas nos próprios sistemas reais sob estudo.  Na

ausência destes, dados de sistemas semelhantes ou informações de vendedores e fabricantes devem ser adaptadas.

 O maior problema é a falta de coincidência entre

o que é coletado e o que é necessário aos modelos! 65


Tipos de Aferição 1. Protótipos  Simplificação de um sistema computacional;  Possuir a mesma funcionalidade do sistema real;

 Custo relativamente elevado;  Dificuldade para determinar quais características são

essenciais. Conclusão:  Pouco utilizado em ambientes de produção. 66


Tipos de Aferição 2. Coleta de Dados

 Especificar pontos de referência Servidor

WAN

CPU

Cliente A C LAN

F

D LAN

B E

67


Tipos de Aferição 2. Coleta de Dados (ou Monitoração) 

 

Resultados mais precisos; A coleta deve ser não intrusiva; Realizada através de 

 

Monitores de Hardware; Monitores de Software;

Pode ser utilizada para validar um determinado modelo. Exp.: Rede de sensores. 68


Aferição: Coleta de dados

Coleta de dados de sistemas reais, questões:  Quais são as fontes de informações disponíveis para

a coleta de dados?  Qual será a “janela de tempo” que irá definir a sessão de medição? Ou seja, deve ser identificado o ‘intervalo de tempo’ no qual o sistema, a carga de trabalho e os índices de desempenho serão observados. 

A determinação deste intervalo depende da natureza do negócio e costuma ser definida pela observação contínua do sistema por períodos que devem compreender as horas de pico dos dias de pico de um determinado serviço prestado. 69


Aferição: Coleta de dados Coleta de dados de sistemas reais, questões:  Quais são as ferramentas de monitoração disponíveis para coletas como: utilização de recursos ou tempo de resposta? 

Estas ferramentas podem estar disponíveis no S.O., podem constituir monitores de rede (sniffers), além de monitores de Hardware e Software desenvolvidos para este fim.

 Que técnicas são empregadas para transformar os

dados coletados em números úteis e válidos para servirem de parâmetros de entrada de modelos?

70


Técnicas de AD: Aferição Monitor  Ferramenta usada para observar atividades no sistema.

 Em geral, monitores observam o desempenho do sistema

coletando dados de desempenho, analisando-os, e exibindo os resultados.  Alguns ainda identificam áreas críticas e sugerem ações.  Áreas de atuação:   

Medição da utilização de recursos e conseqüente descoberta do “gargalo” do sistema. Levantamento do modelo de parâmetros que irá validar futuros modelos e desenvolver próximas alimentações (inputs). Para caracterização da carga de trabalho. O resultados poderão ser usados para planejamento da capacidade e criação de testes de carga.

 Resumindo: Monitoração é o primeiro passo da Aferição! 71


Aferição: Monitoração

O que se deve monitorar (terminologia)  Eventos:

qualquer mudança no estado do sistema é considerado um ”evento”. Exp.: início de pesquisa em disco rígido, chegada de pacotes em um roteador…  Trace: um ‘log de eventos’ usualmente incluindo o tempo do evento, o tipo de evento, etc.  Overhead: Muitos monitores perturbam indiscriminadamente o sistema operacional, consumindo recursos de sistema, CPU, ou disco.  Domain: Um set de atividades observadas pelo monitor é considerado seu ‘domínio’. Exp.: “logs de accounting” registram informações acerca de tempo de CPU, número de discos, nº de caracteres transferidos através de terminais, discos, rede. Isto se constitui no domínio do “log de accounting”. 72


Monitores - Classificação Resumindo a classificação:  Nível de Implementação  Monitor de Software (MS): Implementados por software.  Monitor de Hardware (MH): Equipamento separado.

 Mecanismo de Ativação:  Orientado a Evento: Ativado quando ocorre um evento.  Orientado ao Tempo (amostragem): Ativado a cada intervalo de tempo.

 Apresentação dos Resultados  On-line: Apresenta os resultados enquanto monitora.  Batch: Guarda os resultados num log para apresentação posterior.

 Pode ser classificado pelas três características juntas.  Exemplo: um monitor de software, orientado ao tempo e on-line 73


Monitores de Hardware  Monitores de Hardware (MH) consistem em equipamentos

separados que são conectados ao sistema monitorado.  Geralmente possuem baixo overhead, não consumindo

recursos do sistema monitorado.  Os MH atuais são programáveis, possuem seu próprio

processador, memória e dispositivos de I/O.  Não são recomendáveis para a obtenção de dados

específicos, relacionados com as aplicações.

74


Monitores de Software (MS)  São usados para monitorar sistemas operacionais e aplicações.  Exemplo:

tempo de execução de procedimentos em aplicações, redes e bancos de dados.

 Geralmente possuem (características):  baixa taxa de entrada (freqüência máxima de eventos que

podem ser observados);  baixa resolução (período mínimo entre observações);  alto overhead (comparado com o MH);  Flexibilidade e facilidade de configurações (adaptações quanto ao interesse). 75


Componentes Principais  Monitoração de Software  Coletas nos clientes e no servidor  Instrumentação de código  Ferramentas de coleta 

Windows: Performance Monitor

Unix: iostat, vmstat

Linux: /proc

76


Programas de Análise  Programas de monitoração e análise, são ferramentas de software

designados para coletar informações sobre a execução individual de programas.  Monitores de transações ou os próprios monitores do sistema operacional, monitoram apenas o uso geral dos recursos. Os processos internos não são monitorados.  Programas analisadores, fornecem informações internas:  contagem de transações;  tempo médio de resposta;  tempo médio de CPU/transação;  número médio de I/Os por transação;  mix de transações. 77


LOGS de Contabilização  Os arquivos de Log contém informação sobre os serviços

requisitados, as respostas providas e a origem das requisições.  O NT Performance Monitor, por exemplo, disponibiliza dados de desempenho num arquivo para serem utilizados por outros aplicativos. O analista pode especificar que dados e que intervalos devem ser monitorados.  Os servidores Web, mantém informações sobre suas atividades.  Os logs de servidor Web são separados em tipos, tais como:

access, agent e error.

78


LOGS de Contabilização

 O log access, é usado para analisar o comportamento do servidor e

contém linhas com as seguintes informações.  Host: nome do host cliente ou endereço IP;  Login name or authorization: contém a identidade e autorização (código de acesso) a partes protegidas do site;  Date, time and zone: data e momento no qual uma requisição é completada;  Request: contém o nome do arquivo requisitado e a operação ou método utilizado (ex. “GET/HTTP/1.0”);  Status: demonstra o estado da resposta de um servidor. Por exemplo, requisição feita com sucesso, uma requisição sem a devida autorização ou ainda, arquivo não existente;  File size: indica o número de bytes transferidos por conta de uma requisição. 79


LOGS de Contabilização  Exemplo: A tabela abaixo apresenta um log de acesso a um Web

site coletado durante um curto espaço de tempo. A partir deste, deseja-se coletar medidas de desempenho, tais como taxa média de chegadas e tamanho médio dos documentos requeridos. Host name perf.xyz.com - perf.xyz.com - h0.south.com - h0.south.com - h0.south.com - h0.south.com - cs.uni.edu - cs.uni.edu - cs.uni.edu - cs.uni.edu - sys1.world.com - -

[dd/mm/yy:hh:mm:ss tz] [24/Jan/19xx:13:41:41 –0400] [24/Jan/19xx:13:41:41 –0400] [24/Jan/19xx:13:43:13 –0400] [24/Jan/19xx:13:43:14 –0400] [24/Jan/19xx:13:43:15 –0400] [24/Jan/19xx:13:43:17 –0400] [24/Jan/19xx:13:46:45 –0400] [24/Jan/19xx:13:46:45 –0400] [24/Jan/19xx:13:46:47 –0400] [24/Jan/19xx:13:46:50 –0400] [24/Jan/19xx:13:48:29 –0400]

Request “Get i.html HTTP/1.0” “Get 1.gif HTTP/1.0” “Get i.html HTTP/1.0” “Get 2.gif HTTP/1.0” “Get 3.gif HTTP/1.0” “Get 4.gif HTTP/1.0” “Get i.html HTTP/1.0” “Get 2.gif HTTP/1.0” “Get 3.gif HTTP/1.0” “Get 4.gif HTTP/1.0” “HEAD index.html”

status 200 200 200 200 200 200 200 200 200 200 400

bytes 3185 1210 3185 2555 36403 441 3185 2555 36403 98995 80


LOGS de Contabilização  Na primeira linha, por exemplo, o log indica que a requisição

originou-se de perf.xyz.com, as 13:41:41 (–0400: zona leste de tempo) no dia 24/Jan/19xx. O documento requisitado foi uma página índice. O código 200 indica que a resposta do servidor foi um sucesso. O código 400, por sua vez, indica requisição mal sucedida devido a erro no cliente. O tamanho do arquivo transferido foi de 3185 bytes.  Apesar de ajudarem na caracterização da carga de trabalho, os logs

não apresentam informações diretas sobre parâmetros necessários aos modelos de desempenho.  Por exemplo, não existe informação do tempo necessário para a

transferência de um documento. 81


LOGS de Contabilização  Algumas informações podem ser deduzidas.  O intervalo de tempo de medição T [13:48:29–13:41:41] = 408 seg..

 O número de requisições ocorridas neste intervalo foi 11. Assim pode-se

definir a taxa de chegadas como: 11/408 requisições/seg..  O tamanho médio dos arquivos transferidos foi de 188.117/10 = 18.811,7 bytes.  O menor arquivo foi de 441 bytes.  O maior 98.995 bytes.  Uma vez que as diferenças são muito grandes, é recomendado subdividir o tamanho em classes.  Pode-se, por exemplo, criar duas classes: pequenos, com tamanhos até 4000 bytes e, grandes. Assim, teremos na classe pequenos, sete requisições com tamanho médio de 2.330,9 bytes e a classe grandes, com três requisições de tamanho médio igual a 57.267 bytes. 82


Aferição  Avaliação de sistemas reais  Nível máximo de detalhamento: captura aspectos bastante

específicos do funcionamento do sistema! 

Quais os principais componentes do tempo de resposta de um servidor Web? Qual o impacto da implementação de segurança a nível de análise de pacote (em um firewall) no desempenho de uma rede local?

 Alta complexidade, muitas variáveis: alto custo 

Difícil avaliar impacto de valores isolados: falta de controle!

 Alta precisão

se e somente se realizada corretamente 83


Componentes Principais: Resumo

 Sistema alvo

 Infra-estrutura computacional e de rede  Experimentação em ambiente controlado

 Geradores de carga / tráfego: benchmarks  Ex: TPC : bancos de dados, sistemas de transação

Webstone, Surge, httperf : servidores Web WPB, polygraph: servidores proxy  Modelo de geração de cargas tem que ser realista

 Carga sintética tem que ser realista: caracterização

84


Caracterização de Cargas: Resumo  Resultados principais  Entendimento mais claro do comportamento típico dos

usuários 

Implicações projeto de sistemas mais eficientes e escaláveis

 Prover dados para a geração de cargas sintéticas realistas 

Passo importante para análise de desempenho 

Entrada para modelagem, simulação e experimentação

85


INDICE 1 – Motivação a Avaliação de Desempenho 2 – Aplicabilidade 3 – Medidas de Desempenho 4 – Avaliação de Desempenho 5 – Metodologia de uma Análise de Desempenho


Trabalho de Análise de Desempenho Final Uniremos as disciplinas de Desempenho Web e a Oficina 3. Para gerarmos os seguintes objetivos: Disponibilizar um sistema ou website em um sistema operacional (Windows ou Linux), aonde nele estará integrado soluções de análises de: - Uso da CPU e Memória; - Monitoramento do Link quanto a disponibilidade e a utilização da banda; - Simulação de um stress no BD e Aplicação; 87


5 – Metodologia de uma Anålise de Desempenho

88


Metodologia de Análise de Desempenho no WebSite  Testes de integridade do site  Exame de referências quebradas (links rompidos)  Problemas de recursos não encontrados  Páginas órfãs, inacessíveis ou sem retorno  Componentes do site

Sistemas operacionais/servers  Configurações do Sistema Operacional (memória virtual, sistema de arquivos, cache)  Atualizações e correções  Servidores e serviços utilizados  Protocolos de rede utilizados

89


Metodologia de Análise de Desempenho no WebSite (2) Avaliação de logs do sistema:  Caracterização dos usuários (criação de perfis de uso);  Páginas consultadas;  Duração média das visitas;  Recursos web (imagens, html, etc) utilizados

Teste de qualidade da rede de dados  Tempo de propagação das requisições e respostas na rede;  Throughput dos elementos de rede envolvidos  Utilização da largura de banda da rede

Medição de recursos de HW dos servidores  Tempo de processamento (BD, servers,etc.)  Uso de CPU  Uso de memória  Uso de disco  Uso das interfaces de rede

90


Análise de Desempenho  Cruzamento das informações coletadas, considerandose os diferentes perfis:  Utilização de CPU, memória, disco e da interface de rede em função do número de usuários conectados; Thoughput dos elementos de rede envolvidos em função do número de usuários conectados;  Largura de banda da rede em função do número de usuários conectados; Tempo de processamento para cada processo (software) envolvido – banco de dados, webserver, etc. Caso seja necessário, refinar a avaliação para os sub-componentes de cada elemento da rede/servidor/softwares.

91


Ferramentas  Verificadores de Qualidade Web  Determinação de links inválidos ou rompidos  Determinação de páginas orfãs ou sem retorno;  Determinação de recursos inexistentes;

 Integração com demais ferramentas.

92


Ferramentas (2)  Analisadores de logs do sistema:  Registro dos acessos por data/hora;  Origem dos acessos;  Tempo de conexão;

 Recursos acessados;  Identificação dos usuários, hosts, redes, quando possível;  Caracterização em perfis de uso;

 Geração de relatórios;  Integração com demais ferramentas.

27/10/2012

Análise de Desempenho de Redes

93


Ferramentas (3)  Sniffers/Analisadores de Protocolo/SNMP/RMON  Mapas de tráfego;  Distribuição de protocolos;  Medição do tempo gasto em uma transação na rede;  Caracterização de serviços e aplicações;  Geração de relatórios  Integração com demais ferramentas.

Monitor de Recursos do Servidor: Agentes proprietários de monitoramento de recursos Agentes SNMP

Logs do sistema operacional

27/10/2012

Análise de Desempenho de Redes

94


Ferramentas (4)  Geradores de Carga  Deifinição de perfis de uso;  Permitir usuários virtuais;

 Utilização distribuída;  Geração automática de scripts  Flexibilidade;  Medição de tempos por script ou por recurso web;  Centralização de informações e geração de relatórios;

 Integração com demais ferramentas.

27/10/2012

Análise de Desempenho de Redes

95


Exemplo Firewall

Internet Tráfego Agente SNMP

Cliente WEB

•Servidores de Aplicação WEB •Agentes de Monitorame nto •Analisador de Protocolo •Monitor Analisador de log

Analisador de Protocolo

96


Dados Coletados

97


Dados Coletados (2)

27/10/2012

Anรกlise de Desempenho de Redes

98


Dados Coletados (3)

27/10/2012

Anรกlise de Desempenho de Redes

99


Dados Coletados (3)

27/10/2012

Anรกlise de Desempenho de Redes

100


Dados Coletados (3)

101


Exemplo: Locadora de Automóveis  500.000 veículos

 Cada locadora possui

 3.500 locadoras

terminais ligados a um concentrador  Os concentradores são ligados ao mainframe por uma linha serial  A central de reservas possui 1.800 terminais ligados ao mainframe  Migração para um sistema cliente/servidor.

 Reservas 24 h/d, 7d/sem.  1.800 atendentes

 Média de 360.000

reservas/dia  60% delas são feitas durante período de pico (12 horas)

102


Ambiente Cliente/Servidor para uma Locadora de Autom贸veis

27/10/2012

An谩lise de Desempenho de Redes

103


Requisitos  Tipos de Transações: aluguel e assistência

 O tempo médio de resposta <= 2 seg e 3 seg,

respectivamente  Vazão do servidor >= 80 operações de arquivos/seg  Disponibilidade do servidor >= 99% do tempo  95% das transações devem ter um tempo de resposta inferior a 2 seg.

104


Questões importantes  Que servidores deverão ser usados nas locadoras?

 Deve ser usado um Monitor de Processamento de

Transações?  Que tipo de servidores e unidades de armazenamento deverão ser usados para dar suporte aos servidores de BD da central de reservas?  Que tipo de tecnologia e velocidades deverão ser usadas nas LANs das locadoras e da central de reservas?  Qual deve ser a capacidade da WAN?

27/10/2012

Análise de Desempenho de Redes

105


Divisão dos tempos de resposta para reservas Componente do tempo de resposta

Percentual do total (%)

Estação cliente na locadora

5

LAN na locadora

5

Servidor de aplicações na locadora

25

WAN

10

LAN na central de reservas

4

Servidor de DB na central de reservas

51 106


Tempos de Resposta para Diversas Cargas Carga atual

Carga atual + 5%

Carga atual + 10%

Carga atual + 15%

Reserva local

1,28

1,67

2,45

5,06

Assistência

0,64

0,87

1,37

3,20

0,64

0,76

0,94

1,23

0,85

1,16

1,82

4,24

Transação

Retirada de veículo Reserva por telefone

107


Desempenho da Intranet  Um fabricante de aviões tem 60.000 empregados

 Primeira aplicação da Intranet: suporte a help desk.  10% dos empregados, em média, submetem um

pedido ao help desk diariamente.  70% dos pedidos são feitos nos horários de pico (1012 e 14-16)

108


Tempo de Resposta no Servidor de Help Desk

109


Planejamento de Capacidades  O planejamento de capacidades é o processo de prever quando os níveis de carga futuros irão saturar o sistema e determinar a alternativa mais barata de atrasar o mais possível esta saturação do sistema.

110


Planejamento de Capacidades é importante:  Para evitar perdas financeiras

 Para garantir a satisfação do cliente  Para preservar a imagem externa da empresa  Porque os problemas de capacidade não podem ser resolvidos instantaneamente.

111


Modelos para o lado do Servidor  Questões mais importantes:  Qual deve ser a largura de banda do canal que conecta o

servidor Web à Internet de modo que sejam fornecidos níveis aceitáveis de serviço? Devem ser colocados sites espelho? Quantos? Devo usar um conjunto redundante de computadores baratos (RAIC - Redundant Array of Inexpensive Computers) ou apenas um servidor? Deve-se usar redirecionamento de HTTP ao invés de um sistema distribuído de arquivos compartilhado por diversos servidores Web? ... 112


“Se você não pode proteger o que tem, você não tem nada.” Anônimo


Fim da Ementa. Dúvidas

Reflexão: “Os computadores são incrivelmente rápidos, precisos e burros; os homens são incrivelmente lentos, imprecisos e brilhantes; juntos, seu poder ultrapassa os limites da Imaginação” – Albert Einstein 114

desempenho_de_sistemas_-_cesupa  

desempenho_de_sistemas_-_cesupa

desempenho_de_sistemas_-_cesupa  

desempenho_de_sistemas_-_cesupa

Advertisement