Geração e Modelagem de
Carga de Trabalho
(Workload)
Rosangela Melo
Diego Liberalquino
Rosiberto Santos
Agenda
1° Momento
• Teste de Performance
• Workload o que é?
• Workload Real(Natural) X Sintética(Artificial)
• Tipos de Workload
Addition Instruction
Instruction Mixes
Kernels
Synthetic Programs
Application Benchmarks
 Popular Benchmarks (Sieve, Ackermann’s Function,
Whetstone, Linpack, etc)
• 1ᵃ Prática – JMeter
Agenda
2° Momento
• Seleção da Carga de Trabalho
Services Exercised
Level of Detail
Representativeness
Timeliness
• Técnicas de Caracterização de Carga de Trabalho
• 2ᵃ e 3ᵃ Práticas - Caracterização
• Análise de Performance
Teste de
Performance
Por que é necessário testar?
• Avaliar a infra-estrutura;
• Avaliar a capacidade atual;
• Determinar a estabilidade;
• Avaliar a release;
• Avaliar o tempo de resposta;
• Verificar se aplicação suportar o workload
pretendida;
• Verificar se aplicação possui estabilidade
para aguentar o crescimento do workload.
Propósitos do Teste de
Performance
• Determinar a probabilidade que o sistema irá atender aos
SLA’s(Service Level Agreement) acordados;
• Não mitiga o risco diretamente, mas identifica e quantifica o
risco;
• Determina a configuração mínima que permitirá o sistema
atender os SLA’s;
• Determinar tempos de resposta em throughputs;
• Determinar gargalos (bottlenecks) no sistema;
• Comparação de diferentes plataformas de hardware e
Sisyema Operacional.
Benefícios Teste de Performance
• Melhoria da qualidade do ponto de vista do usuário;
•
Redução do custo de mudanças;
•
Redução dos custos de sistema;
• Identificação antecipada dos defeitos mais críticos da
aplicação como arquitetura do sistema.
Workload
Workload
O que é Workload?
Conjunto de todas as requisições de serviço (processamento)
submetidas a um sistema durante um período de tempo.
Objetivo
•
Capaz de mostrar, capturar e reproduzir um
comportamento carga de trabalho real e suas funcionalidades
mais importantes.
Workload
A carga de trabalho utilizada para comparar dois sistemas devem
ser representativas em relação ao uso dos sistemas em campo.
Exemplo:
Um sistema real, os pacotes de uma rede são geralmente de dois
tamanhos, um curto e outro longo, a carga de trabalho utilizada
para aferir este sistema dever conter as mesmas características do
sistema real.
Teste de
Performance
Planejamento
de Capacidade
Como surge o
workload?
Monitora o
sistema real
Extrai dado usar como
insumo
Carga sintética
Gerador de Carga
Workload
* Carga sintética auxilia no planejamento da capacidade
Workload Real (Natural)
vs
Sintética (Artificial)
Real
Sintética
Operação normal
Operação não normal
Base de dados grande
Base de dados menor
Dados sensíveis
Dados não sensíveis
Não pode ser modificado
Facilmente modificada sem impactar sua
operação
Não suporta portabilidade
Suporta portabilidade
Sem recursos internos de
medição
Com recursos internos de medição
Pode ser aplicado várias vezes de maneira
controlada
Tipos de Workloads
Addition Instruction
Instruction Mixes
Kernel
Synthetic Programs
Application Benchmarks
Tipos de Workloads
Addition Instruction
•
•
•
•
Máquinas mais simples;
Conjunto de instruções reduzidas;
Instruções de adição era a mais frequente;
Tempo de adição métrica definida.
Tipos de Workloads
Instruction Mixes
•
•
•
•
•
Crescimento do processamento;
Instruções de adição não era suficiente;
Instruction mix = Instruction + Frequência de uso;
Média das instruções para comparar velocidade de
processadores;
Desenvolvido o Mix de Gibson.
Métricas de Performance
•
•
MIPS = Millions of Instructions Per Second;
MFLOPS = Millions of Floating Point Operations Per Second.
Tipos de Workloads
Figura 1. Gibson Instruction Mix. (Wiley e Sons, 1991)
Tipos de Workloads
Kernel
•
•
•
Conjunto de Funções (kernels);
Generalização de Instruction Mixes;
Desvantagens não utiliza dispositivos de I/O, não refletem o
desempenho do sistema total.
Kernels utiliza: Sieve, Puzzle, Pesquisa em árvore, Função de
Ackerman, Inversão de matriz e ordenação.
Tipos de Workloads
Synthetic Programs
•
Para medir o desempenho de I/O, os analistas utilizam
loops exercitadores;
•
O primeiro loop exercitador foi criado por Buchholz (1969)
que o chamou de programa sintético.
Tipos de Workloads
Desvantagens
Vantagens
•
•
•
Não há dados reais de
arquivos;
Facilmente modificados e
transportados
para
diferentes sistemas;
O processo de medição é
automatizado.
•
Mecanismos de falhas de
página e cache de disco podem
não
ser
adequadamente
exercitados;
•
A sobrecarga da CPU-I/O
pode não ser representativa.
Tipos de Workloads
Application Benchmarks
Tipos de Workloads
Benchmarking
Benchmarks
(JAIN, 1991)
Tipos de Workloads
Weicker (2002), o que torna um programa um
benchmark é o fato de que esse programa é
padronizado (contendo especificações detalhadas),
tendo sido projetado ou selecionado para executar
em diferentes sistemas computacionais com o
objetivo de realizar comparações justas do
desempenho desses sistemas.
Os benchmarks são programas utilizados para
avaliar
hardware,
software
ou
sistemas
computacionais completos. Esses programas definem
cargas
de
trabalho
que
representam
as
características essenciais de um domínio de
aplicação.
Popular Benchmarks
Sieve
É
um
benchmark
utilizado
para
comparar
os
microprocessadores, computadores pessoais, e linguagens de
alto nível. Utiliza o algoritmo Crivo de Eratóstenes.
É usado para localizar todos os números primos abaixo de um
dado número n.
Popular Benchmarks
Figura 2. Simulação do Crivo de Eratóstenes (Wikipédia, 2012)
Popular Benchmarks
Ackermann’s Function
• Função computável;
• Definição de recursão extremamente profunda;
• Utilizada como referência de benchmark para otimização de
recursividade em compiladores;
• Este núcleo tem sido utilizado para avaliar a eficiência do
mecanismo chamado procedimento em ALGOL-like languages.
Popular Benchmarks
Função de Ackerman
Popular Benchmarks
A(1,2)
Popular Benchmarks
Whetstone
•
Utilizado na Agência Central Computer britânico, o Whetstone
consiste de um conjunto de 11 módulos concebidos para combinar a
frequência observada de operações dinâmicas utilizados em
programas ALGOL 949.
•
Os resultados dos benchmarks Whetstone são medidos em KWIPS
(Instruções Whetstone Kilo por segundo).
•
Existem muitas permutações do benchmark Whetstone, por isso, é
importante assegurar que as comparações entre os vários sistemas
utilizam o mesmo código de origem e que o contador de ciclo interno é
definido suficientemente grande para reduzir a variabilidade de
temporização;
É geralmente considerada uma referência de carga para ponto
flutuante.
•
Popular Benchmarks
PROCEDURE MODULE4;
(* MODULE 4: CONDITIONAL JUMPS *)
VAR
PROCEDURE MODULE7;
I : INTEGER;
BEGIN
J:=1;
FOR I:=1 TO N4 DO
VAR I : INTEGER;
TEMP : REAL;
BEGIN
IF J=1 THEN
J:=2
ELSE
J:=3;
IF J>1 THEN
J:=0
ELSE
J:=1;
IF J<2 THEN
J:=1
ELSE
J:=0
END;
END; (* MODULE 4 *)
(* MODULE 7: TRIG FUNCTIONS *)
PROCEDURE P3(X,Y:REAL;VAR Z:REAL);
BEGIN
BEGIN
X:=0.5; Y:=0.5;
X:=T*(X+Y);
FOR I:=1 TO N7 DO
Y:=T*(X+Y);
BEGIN
Z:=(X+Y)/T2
TEMP:=COS(X+Y)+COS(X-Y)-1.0;
END; (* PROCEDURE P3 *)
X
:=T*ARCTAN(T2*SIN(X)*COS(X)/TEMP);
TEMP:=COS(X+Y)+COS(X-Y)-1.0;
Y
:=T*ARCTAN(T2*SIN(Y)*COS(Y)/TEMP);
PROCEDURE MODULE8; (* MODULE 8: PROCEDURE
END;
CALLS *)
END; (* MODULE 7 *)
VAR
I : INTEGER;
BEGIN
X:=1.0; Y:=1.0; Z:=1.0;
FOR I:=1 TO N8 DO
P3(X,Y,Z)
END; (* MODULE 8 *)
Exemplo código
Whetstone
Popular Benchmarks
Linpack
•
•
•
É constituído por um certo número de programas que resolvem
sistemas densos de equações lineares usando o pacote de sub-rotina
de descompactação. Os programas podem ser caracterizados como
tendo uma elevada percentagem de ponto flutuante de adições e
multiplicações.
Na maioria das vezes é consumido um conjunto de sub-rotinas
chamadas de subprogramas básicas álgebra linear (BLAS),que são
chamados repetidamente ao longo do benchmark. Os valores de
referência são comparados no
LINPACK baseado na taxa de
execução conforme medido em MFLOPS.
São utilizadas para avaliar desempenho de aplicações científicas e de
engenharias.
Popular Benchmarks
Dhrystone
•
É um benchmark que contém muitas chamadas de procedimento e é
utilizado para representar ambientes de sistemas de programação.
Ele está disponível em três linguagens: C, Pascal e Ada. No entanto, a
versão C é o mais comumente usado. Os resultados são normalmente
apresentados na Dhrystone Instruções Por Segundo (DIPS).
•
A documentação de referência apresenta um conjunto de regras
básicas para a construção e execução Dhrystone. O benchmark foi
atualizado várias vezes, e é importante para especificar o número da
versão quando o kernel é usado.
Popular Benchmarks
procedure TDhrystone.Proc6; (* ( EnumParVal: Enumeration;
var EnumParRef: Enumeration) *)
(* executed once *)
(* EnumParVal = Ident3, EnumParRef becomes Ident2 *)
begin
EnumParRef := EnumParVal;
if not Func3 (EnumParVal) then (* not executed *)
EnumParRef := Ident4;
case EnumParVal of
Ident1: EnumParRef := Ident1;
Ident2: if IntGlob > 100 then
EnumParRef := Ident1
else
EnumParRef := Ident4;
Ident3: EnumParRef := Ident2;
Ident4: ;
(* executed *)
Ident5: EnumParRef := Ident3;
end; (* case *)
end; (* Proc6 *)
Exemplo de código Dhrystone
Popular Benchmarks
Lawrence Livermore Loops
•
•
•
•
É constituído de 24 testes;
Grandes cálculos científicos;
Resultados complexos dados em MFLOPS;
Aplicação em larga escala.
Popular Benchmarks
SPEC Benchmark Suite
•
•
•
•
•
•
•
•
•
•
GCC – Compilador de arquivos em linguagem Assembly;
Espresso – Heurística booleana, minimização de funções;
Spice 2g6 – Circuito bipolar;
Doduc – Realiza simulação de Monte Carlo;
NASA7 – Realiza operações com matrizes;
LI – Interpretador;
Eqntom - uma representação lógica de uma equação booleana
para uma tabela verdade;
Matrix300 - Realiza operações de matrizes utilizando rotinas
LINPACK com tamanho de 300 x 300;
Fpppp – Química quântica;
Tomcatv – Geração de vetores.
1ª Prática - JMeter
Seleção de Carga de Trabalho
• A carga de trabalho é a parte mais importante de qualquer
projeto de avaliação de desempenho;
• Escolha correta da carga de trabalho requer análise.
Pontos importantes na seleção da carga são:
•
•
•
•
Services Exercised;
Level of Detail;
Representativeness;
Timeliness.
Seleção de Carga de Trabalho
Services Exercised
• Ver o sistema como fornecedor de serviços;
• Sistema de expressão em teste (SUT);
• Componente em estudo (USC).
Exemplo
A equipe de projeto pode querer entender o impacto das diferentes
Aritmética Lógica-Unit (ALU) nas
Unidade Central de
Processamento (CPU) em organizações. Neste caso, o processador
é o SUT e o ALU é o CUS.
Seleção de Carga de Trabalho
Services Exercised
• As métricas escolhidas devem refletir o desempenho dos serviços
prestados ao nível do sistema e não no nível de componente;
• Por exemplo, o MIPS é uma métrica justificáveis para comparar
dois processadores, mas não é apropriada para a comparação
dois sistemas de timesharing;
• Gerar carga de trabalho para realizar teste de todas as
funcionalidades do objeto em análise.
Seleção de Carga de Trabalho
Exemplo
Utilizar Worlkload para medir o desempenho de uma ALU que
fornece aritmética flutuante de inteiros usando apenas uma carga
de trabalho inteiro.
Neste caso, a carga de trabalho não exerce toda a chave serviços
fornecidos pelo sistema.
Seleção de Carga de Trabalho
Aplicações do usuário
WORKLOAD
Compressão e segurança dos dados
Analisar o diálogo completo das
mensagens
Segmentação e remontagem das
mensagens
Analisar as características dos pacotes
transmitidos
Combinar frequências de
vários símbolos ou padrões
de bits
Analisar as características dos quadros
transmitidos,taxas
Assim, a escolha da carga de
trabalho depende da camada
em que as redes são
comparadas ou analisadas
Seleção de Carga de Trabalho
Level of Detail
Depois de identificar a lista de serviços, o próximo passo é listar
as seguintes características:
•
•
•
•
•
Most frequent request;
Frequency of request types;
Time-stamped sequence of requests;
Average resource demand;
Distribution of resource demands.
Seleção de Carga de Trabalho
Level of Detail
Combinação de métricas para gerar o Workload:
• Recurso mais solicitado ou Mix: serviços + frequência ou
time-stamped record (rastreamento dos serviços), utilizá-lo
como carga de trabalho;
• Faz-se uso de médias e distribuições de probabilidades.
Seleção de Carga de Trabalho
Representativeness
• Taxa de chegada: A taxa de entrada dos pedidos devem ser os
mesmos ou proporcional ao do aplicação;
• Demandas de recursos: as demandas totais de cada um dos
recursos chave deve ser o mesmo ou proporcional ao da
aplicação;
• Perfil de utilização de recursos: o perfil de uso de recursos
refere-se à sequência e os valores em que diferentes recursos são
usados em um aplicativo.
Seleção de Carga de Trabalho
Timeliness
• Adequação das workloads as necessidades do sistema;
• Comportamento do usuário e do sistema;
• Monitoramento comportamento do usuário e atualização das
cargas de trabalho a partir de medições recentes.
Caracterização da Carga de
Trabalho
Objetivo
Desenvolver um modelo de carga de trabalho que possa ser
usado repetidamente.
Definir componente ou unidade de carga de trabalho.
Ex:
• Aplicações (Servidores de email, editores de texto e etc);
• Sites;
• Sessões de usuário.
Caracterização da Carga de
Trabalho
Selecionar parâmetros ou características de carga de trabalho
• Tipos de transação;
• Tamanhos de pacote;
• Tipos de instrução.
Caracterização da Carga de
Trabalho
Utilizar técnicas para caracterização de carga de trabalho
•
•
•
•
•
•
•
Média;
Dispersão;
Histogramas de parâmetro único;
Histogramas de parâmetros múltiplos;
Análise de componentes Principais;
Modelos de Markov;
Agrupamento (ou Clustering).
Caracterização da Carga de
Trabalho
Média
•
•
•
•
•
•
Média aritmética ou ponderada;
Mediana;
Moda;
Média Geométrica;
Média Harmônica;
Frequência.
Caracterização da Carga de
Trabalho
Dispersão
• Variância e desvio padrão;
• Coeficiente de variação.
• Alternativas
• Amplitude
• Distância interquartil
• Distância entre 10 e 90 percentis
Caracterização da Carga de
Trabalho
Dispersão
Caracterização da Carga de
Trabalho
Histogramas de parâmetro único
• Analisar distribuição de parâmetro;
• Matriz para representação de um ou mais parâmetros (nmk)
 n buckets;
 m parâmetros;
 k componentes.
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
• Histograma de parâmetro único
Caracterização da Carga de
Trabalho
Histogramas de parâmetros múltiplos
• Verifica correlação entre diferentes parâmetros;
• Raramente usada.
Caracterização da Carga de
Trabalho
Análise de Componentes Principais
• Soma de pesos para classificar componentes de carga de
trabalho
• Recebe conjunto de observações possivelmente
correlacionadas;
• Transforma em um conjunto de valores linearmente não
correlacionados, onde a ordem dos parâmetros encontrados
determina a maior influência na variância dos dados
Caracterização da Carga de
Trabalho
Análise de Componentes Principais
• Suponha um conjunto de pacotes enviados e recebidos de
diferentes estações de trabalho em uma rede local (LAN).
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
Modelos de Markov
• Workload realiza vários tipos de requisição, onde a
ordem é importante;.
• A próxima requisição depende da requisição anterior
• Desenvolve matriz de transição para o modelo de carga
de trabalho.
Caracterização da Carga de
Trabalho
Modelos de Markov
Exemplo: Sistema de monitoramento em servidor detecta tráfego de
dois tipos de pacote, pequeno e grande, onde os pequenos constituem
80% do total. Assume-se que para cada 4 pacotes pequenos recebidos
1 pacote grande é recebido.
Pode ser representado pela sequência: ppppgppppg...
Caracterização da Carga de
Trabalho
Modelos de Markov
Exemplo: O mesmo do exemplo anterior, porém agora os pacotes são
gerados a partir de um número aleatório x uniformemente
distribuído, onde:
– Se x for maior que 0.8, o pacote é grande;
– e caso seja menor, é um pacote pequeno. Logo, temos:
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
• Classificar componentes da carga de trabalho em
agrupamentos (clusters);
• Similaridade de elementos de um cluster.
Caracterização da Carga de
Trabalho
Etapas de Clustering
1.
2.
3.
4.
5.
6.
7.
8.
9.
Amostragem
Seleção de parâmetros
Transformação de parâmetros
Remoção de outliers
Redimensionamento dos dados
Selecione uma métrica de distância
Realize o agrupamento
Interprete os Resultados
Modifique parâmetros ou número de grupos, repita passos 3
a7
10. Selecione componentes representativos de cada grupo
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
Amostragem
• Seleção aleatória;
• Seleção baseada em características.
Seleção de parâmetros
• Selecionar parâmetros com maior impacto no desempenho
e variância;
• Análise de componentes principais.
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
Transformação de parâmetros
• Verificar assimetria de parâmetro;
• Usar função para transformar parâmetro. Ex: Log.
Remoção de Outliers
• Remover componentes que destoam dos demais;
• Considerar componentes que afetam o desempenho.
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
Redimensionamento
• Utilizar distâncias relativas para parâmetros;
• Normalização baseada em média e desvio padrão;
• Normalização baseada em distância;
• Normalização baseada em percentis;
• Pesos.
Caracterização da Carga de
Trabalho
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
Técnicas de Agrupamento
• Minimizar distância intra-grupo
• Maximizar distância inter-grupo
• Tipos de técnica:
• Não Hierárquicas
• Hierárquicas
 Aglomerativa
 Divisiva
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
Minimum Spanning Tree
1. Inicie com k = n agrupamentos
2. Encontrar o centroide do i-ésimo agrupamento
3. Computar matriz de distância inter-grupo (distância
entre centroides)
4. Encontrar o menor elemento não nulo da matriz de
distância e juntar grupos
5. Repetir passos 2 a 4 até que todos os componentes
façam parte de um único agrupamento
Caracterização da Carga de
Trabalho
Agrupamento (Clustering)
Caracterização da Carga de
Trabalho
Agrupamento (Clustering) – Problemas
• Variabilidade dos resultados;
• Agrupamentos não significativos;
• Difícil comparação de cargas de trabalho de localidades
diferentes;
• Exige bastante recurso computacional (?).
2ª e 3ª Práticas
Obrigado!
Referências
JAIN, R. The Art of Computer Systems Performance Analysis:
Techniques for experimental design, measurement, simulation and
modeling. New York: John Wiley & Sons, 1991. 685 p.
WEICKER, R. Benchmarking. In: CALZAROSSA, M.; TUCCI, S. (Ed.).
Performance Evaluation of Complex Systems: Techniques and
Tools : Performance 2002. Tutorial Lectures.London, UK: Springer-Verlag,
2002, (Lecture Notes in Computer Science, v. 2459). p. 179–207.
WIILLEY, R.J. WILLEY SONS, J. Art of Computer Systems Performance
analysis Techniques For Experimental Design Measurements Simulation
And Modeling .ISBN: 0471503363,1991.
Geração e Modelagem de
Carga de Trabalho
(Workload)
Rosangela Melo
Diego Liberalquino
Rosiberto Santos
Download

Geração e Modelagem de Carga de Trabalho (Workload)