Livro: "Art of Computer Systems Performance Analysis:
Techniques for Experimental Measurements Simulation and Modeling" de Raj
Jain
Resumo do capítulo 2:
Resumo do capítulo 2:
CAPÍTULO 2. – ERROS COMUNS E COMO EVITÁ-LOS
Este capítulo inicia com uma lista de erros comumente
observados em projetos de avaliação de desempenho, em seguida é então formulado
um resumo da avaliação de desempenho, os passos para uma correta avaliação de desempenho
e em que ordem devem ser executados.
2.1
- Erros comuns em avaliação de desempenho
Diferentemente do “Game Ratio” do capítulo anterior, a maioria
dos erros não são intencionais. São causados por descuido, equívocos e falta de
conhecimentos sobre as técnicas de avaliação de desempenho.
1. FALTA
DE OBJETIVOS: Qualquer projeto sem metas não deve funcionar. Parece obvio, mas
muitos projetos se iniciam sem objetivos claros. Modelos de propósito gerais
não existem. Não há como o modelo ser flexível suficiente para ser facilmente
modificado para diferentes problemas. Cada modelo deve ter um objetivo
específico. Métricas, carga de trabalho e toda a metodologia dependem do
objetivo. Cada problema possui uma área diferente a ser observada. Antes de
qualquer modelagem, é importante que o projetista entenda o sistema e
identifique o problema. E encontrar um objetivo não é uma tarefa simples. A
maioria dos problemas são bastante vagos no início, então encontrar um conjunto
de objetivos é bastante difícil. Uma vez que se entende o problema e seu
objetivo foi definido fica mais fácil encontrar uma solução.
2. OBJETIVOS
TENDENCIOSOS: Principalmente quando uma comparação é feita na forma de
competição, as métricas, funções, cargas, etc, podem ser escolhidas visando um
resultado que favoreça um lado e não o de encontrar o melhor modelo para
comparar os sistemas. Assim, o analista deve ser imparcial.
3. ABORDAGEM
SEM MÉTODO: Muitos analistas adotam uma abordagem sem sistemática onde os parâmetros,
fatores, métricas e cargas são escolhidos arbitrariamente, levando a resultados
imprecisos. Um método bem definido ajuda na escolha de um conjunto completo de
todos esses elementos
4. ANÁLISE
SEM ENTENDIMENTO DO PROBLEMA: Uma grande parte do esforço da análise está em
definir o problema. Desenvolver um modelo é apenas uma parte do problema.
Modelos são a ferramenta para alcançar as conclusões. Pessoas que precisam
fazer decisão muitas vezes ignoram um trabalho que foca apenas na sistemática,
pois não precisam apenas de um modelo, mas um guia.
5. MÉTRICAS
DE DESEMPENHO INCORRETAS: Métricas são critérios usados para quantificar o desempenho
do sistema. A escolha da métrica correta depende do serviço oferecido pelo
sistema em questão. Assim, manipular a escolha da métrica pode mudar a
conclusão de um estudo de desempenho. Outro erro bastante comum é escolher
apenas métricas fáceis de medir ou computar e ignorar as mais difíceis.
6. CARGA DE TRABALHO REPRESENTATIVA: A carga usada para comparar dois sistemas deve
ser capaz de representar o atual uso do sistema em estudo. Seu uso de forma
inadequada levará a resultados imprecisos que não representa o real
funcionamento do sistema.
7. TÉCNICA
DE AVALIAÇÃO ERRADA: Há três técnicas de avaliação: medição, simulação e
modelagem. Se o analista tiver preferência por alguma técnica, mesmo que seja
mais fácil utilizar outra pode levar a melhores resultados do que de outra
forma, mas também pode causar problemas introduzindo fenômenos que antes não
estavam presentes ou ignorando algum fenômeno importante no sistema original.
Por isso a necessidade de dominar o básico das três técnicas. Há número de
fatores a ser considerado na escolha da técnica correta.
8. SUPERVALORIZAR
IMPORTANTES PARAMETROS: É uma boa ideia fazer uma lista completa das
características da carga e do sistema que afetam seu desempenho. Estas
características chamam-se parâmetros.
O analista então escolhe um conjunto de valores para cada um destes parâmetros.
O resultado final depende destas escolhas. Supervalorizar um ou os parâmetros
mais importantes pode tornar todo resultado inútil.
9. IGNORAR
FATORES SIGNIFICANTES: Um parâmetro que pode variar durante o estudo é chamado
de fator. O restante dos parâmetros
permanecem com valores fixos. Não são todos os fatores que afetam
significativamente o desempenho do sistema. É necessário identificar os fatores
que sejam relevantes para o desempenho. A menos que haja uma razão, estes
parâmetros devem ser usados como fator no estudo de desempenho. Fatores que
estão sob o controle do usuário final são facilmente manipuláveis e devem ter
prioridade a fatores que são mais difíceis de serem alterados. Não gaste tempo
comparando alternativas que o usuário final não pode adotar por envolver ações
inaceitáveis ou fogem da sua esfera de influência. Também é importante conhecer
a aleatoriedade de vários parâmetros e cargas que afetam o desempenho, pois a
escolha dos fatores deve ser feita baseada em sua relevância e não no
conhecimento do fator. Deve ser feito todo esforço para gerar resultados
realistas de todos os para metros. Para parâmetros desconhecidos deve ser feita
uma sensível análise mostrando o efeito de mudar seus valores para quantificar
o impacto de sua incerteza.
10. PROJETO
EXPERIMENTAL INADEQUADO: Projetos experimentais relatam o numero de medidas ou
experimentos de simulação para serem conduzidos e os valores dos parâmetros
usados em cada experimento. A escolha correta destes valores pode gerar mais
informações em um mesmo numero de experimentos enquanto seleções impróprias
pode gerar perda de tempo e recurso. Além disso, projetos muito simples onde os
fatores são alterados um por um pode levar a conclusões errôneas se o efeito de
um depende dos valores de outros.
11. NÍVEL
DE DETALHE INADEQUADO: o nível de detalhe usado na modelagem de um sistema tem
muito impacto na formulação do problema. Para estudar pequenas variações de uma
abordagem comum, usar um modelo detalhado pode ser mais útil, mas em situações
muito diferentes um modelo de alto nível pode ser analisado mais rápido e de
forma mais barata. É um erro comum criar um tipo de modelo quando a situação
pede outro tipo. Assim, o objetivo de um estudo tem um impacto significativo no
modelo e como ele é analisado.
12. SEM
ANALISE: Um erro muito comum em projetos de medição é quando se gera uma enorme
quantidade de dados, mas o analista não consegue direcionar seu uso. Ema alguns
casos um grande relatório cheio de dados brutos são apresentados sem nenhuma
explicação de como se usa os resultados.
13. ANÁLISE
ERRADA: Há um número de erros de análises feitas em medidas, simulações e
modelos analíticos, como considerar médias em taxas ou simulações muito curtas.
Estes erros são discutidos ao longo do livro quando for tratada cada técnica.
14. SEM
ANALISE DE SENSIBILIDADE: Às vezes o analista coloca muita ênfase no resultado
da sua análise e esquece o valor do sistema ou da carga de entrada. Sem uma
análise da sensibilidade não é possível determinar se o resultado pode variar
com pequenas mudanças no cenário e sem a análise de sensibilidade é difícil
entender a relativa importância dos parâmetros.
15. IGNORAR
ERROS DE ENTRADA: muitas vezes um parâmetro de interesse não pode ser medido.
Em vez disso outra variável que pode ser medida serve de base para estimar o
parâmetro. Isso pode introduzir incertezas nos dados de entrada e
consequentemente nos dados de saída. O analista precisa ajustar o nível de
confiança do resultado do modelo a partir dessa informação. Além disso, pode ser
que não valha a pena produzir esses dados com precisão se a entrada for
significativamente grande a ponto das variações não produzirem diferença. Nem
sempre erros de entrada podem ser igualmente distribuídos em torno da média
gerando uma entrada tendenciosa.
16. TRATAMENTO
INDEVIDO DAS DISCREPÂNCIAS: Valores que fogem da média são chamados de
discrepantes. Essas discrepâncias podem representar um problema. Se essa
discrepância não for causada pelo sistema real, deve ser ignorada, pois
incluí-la pode produzir um modelo inválido. Por outro lado, se a discrepância
ocorre no modelo real, deve ser levado em conta ou o modelo será considerado
errado. Decidir quais discrepâncias devem ser ignoradas e quais devem ser
incluídas é parte da avaliação de desempenho e requer um cuidadoso entendimento
do sistema que está sendo modelado.
17. NÃO
ASSUMIR MUDANÇAS NO FUTURO: Isto quer dizer que o modelo funcionará tanto no
futuro quanto no passado. Um modelo baseado em carga e desempenho observados no
passado é usado para prever a o desempenho no futuro. E tanto a carga quanto o
comportamento do sistema no futuro será o mesmo do medido atualmente. O
analista deve considerar essa suposição e limitar a quantidade de tempo que a
previsão é feita.
18. IGNORAR
VARIABILIDADE: É comum o analista utilizar apenas a média do desempenho quando
a variabilidade é muito complicada ou impossível. Se a variabilidade for muito
alta, a média sozinha pode ser enganosa, principalmente em sistemas em que há
momentos de picos e momentos de ociosidade, podendo impactar o desempenho do
usuário.
19. ANÁLISE
MUITO COMPLEXA: Sempre é preferível que se explique o resultado com o modelo
mais simples possível. Muitos problemas do dia a dia são resolvidos por modelos
simples, mesmo que no meio acadêmico se valorize modelos mais complexos. No
mercado de trabalho onde o tempo é essencial, desenvolver um modelo funcional e
simples o suficiente que seja fácil de comercializar dentro de um tempo hábil é
mais valorizado. O ideal é começar com um modelo simples e após os primeiros
resultados, inserir as complicações. Modelos complexos também podem ser
difíceis de entender para quem realmente toma as decisões e seus resultados
podem não ter credibilidade.
20. APRESENTAÇÂO
DOS RESULTADOS INDEVIDA: Ocasionalmente o estudo de desempenho ajuda na tomada
de decisões. Uma análise que não produza resultados ou uma análise em que os
resultados são difíceis de entender resulta e um uma falha e a entidade que
toma decisões pode não conseguir projetar, vender ou conseguir patrocínio.
Transmitir os resultados para os tomadores de decisão é responsabilidade do
analista, por isso deve-se tomar cuidado com as palavras, imagens e gráficos
explicando a análise. “A métrica para o desempenho de uma análise não é o
numero de análises feitas, mas sim o número de análises que ajuda na tomada de
decisão”.
21. IGNORAR
OS ASPECTOS SOCIAIS: Uma boa apresentação do resultado da análise querer dois
tipos de habilidades: sociais e materiais. Escrever e falar são habilidades
sociais enquanto modelar e analisar são habilidades materiais. Muitos analistas
possuem suas habilidades materiais bem desenvolvidas, mas na hora de apresentar
os resultados não tem boas habilidades sociais. A aceitação da análise depende
da confiança entre quem toma decisões e o analista e a apresentação dos
resultados é uma forma de compreendê-lo. Assim as habilidades sociais são
importantes para apresentar resultados que são contra o que quem toma decisão
acredita ou para grandes mudanças em projetos. Porém, em alguns casos, a pessoa
que verá a apresentação do analista também é um analista e está mais
interessado na metodologia adotada do que no resultado final. Nesse caso pode
ser interessante fazer duas apresentações: uma focando a linguagem, crença e
jargões dos tomadores de decisões e outra focando a metodologia. Às vezes os
tomadores de decisões possuem objetivos diferentes que não são interessantes
para o analista, como cronograma, política ou viabilidade de implementação e
podem ser ótimos em analisar os resultados, mas não entender a análise em si.
Um esforço em entender seus interesses e incorpora-los na apresentação pode
aumentar suas chances de vender seu peixe.
22. OMITIR
HIPÓTESES E LIMITAÇÕES: Muitas vezes o analista omite suposições e limitações
no relatório final. Isso pode levar usuários a usar a análise em outro contexto
que não é válido, ou mesmo o analista cria uma teoria no início, mas se esquece
das limitações fazendo conclusões sobre ambientes que a análise não se aplica.
A seguir tem-se um checklist de perguntas que devem ser
respondidas afirmativamente em uma análise de desempenho.
1.
O sistema foi definido corretamente e os
objetivos estão claros?
2.
Os objetivos foram definidos de forma imparcial?
3.
Seguiu todos os passos da análise metodicamente?
4.
O problema foi compreendido antes da análise?
5.
As métricas de desempenho são relevantes para
este problema?
6.
A carga de trabalho (entrada) está correta neste
problema?
7.
A técnica de avaliação usada é apropriada?
8.
Possui uma lista de parâmetros que afetam o
desempenho do sistema?
9.
Da lista de todos os parâmetros, foram escolhidos
os fatores que serão variados?
10.
O projeto experimental é eficiente em termo de
tempo e resultados?
11.
O nível de detalhamento é ideal?
12.
Os dados medidos são apresentados com análise e
interpretação?
13.
A análise está estatisticamente correta?
14.
A análise de sensibilidade foi feita?
15.
Erros na entrada causam significantes alterações
no resultado?
16.
As discrepâncias na entrada ou saída foram
corretamente tratados?
17.
Foram modeladas as futuras mudanças na carga e
no sistema?
18.
A variância da entrada foi levada em conta?
19.
A variância dos resultados foi levada em conta?
20.
A análise é de fácil explicação?
21.
O estilo da apresentação está de acordo com sua
audiência?
22.
Os resultados foram apresentados graficamente
tanto quanto possível?
23.
As teorias e limitações da análise foram
claramente documentadas?
2.2
- Uma abordagem sistemática da avaliação de desempenho
A maioria dos problemas de desempenho são únicos. Os parâmetros
usados em um projeto não podem ser usados em outros, mas alguns passos são
comuns a todos para evitar os erros da seção anterior.
1. DECLARE
OBJETIVOS E DEFINA O SISTEMA: O primeiro passo é declarar quais são os
objetivos da avaliação assim como limites do sistema. Esse limite depende do
objetivo do estudo. A escolha destes limites afetam as métricas de desempenho
assim como a carga que será usada para comparar os sistemas, por isso é importante
entender o sistema. Outras considerações também devem ser feitas, como o
controle administrativo. Se os patrocinadores (sponsors) não tiver controle
sobre algum componente, eles podem querer manter este componente fora do
sistema.
2. LISTAR
SERVIÇOS E RESULTADOS: cada sistema provê um conjunto de serviços. Quando um usuário
requer algum destes serviços, diversos tipos de resultados são possíveis. E alguns
destes resultados são desejáveis, outros não. Então uma lista dos serviços e saídas
são uteis para determinar a correta métrica e cargas.
3. SELECIONAR
MÉTRICAS: O próximo passo é selecionar os critérios para comparar o desempenho.
Esses critérios são chamados de métrica. Normalmente estão relacionadas à
velocidade, precisão ou disponibilidade dos serviços. A seleção correta das métricas
é discutida no capítulo 3
4. LISTAR
PARÂMETROS: o próximo passo é listar todos os parâmetros que afetam o
desempenho. Divide-se em parâmetros do sistema e parâmetros da carga (parâmetros
da carga são as características das requisições dos usuários). No início a
lista não estará completa, mas depois da primeira análise novos parâmetros podem
ser adicionados. O ideal é que a lista esteja sempre atualizada e de fácil
compreensão para que se possa discutir o impacto de vários parâmetros e que
dados devem ser coletados antes e durante a análise.
5. SELECIONAR
OS FATORES DO ESTUDO: Os parâmetros que variam podem variar no sistema se
chamam fatores e seus valores se chamam níveis. No geral a lista de fatores é muito
grande. O ideal é considerar apenas um pequeno úmero de fatores que afetam
muito o desempenho do sistema e manter com valores fixos o restante. Um erro
comum é escolher como fatores parâmetros de fácil medição e ignorar outros às
vezes mais influentes apenas por ser difícil de medir ou variar. A escolha dos
fatores também deve levar em conta a economia, política e as limitações
impostas por quem toma decisão. Isto ajuda a encontrar uma solução que é aceitável
e implementável.
6. ESCOLHER
A TÉCNICA DE AVALIAÇÃO: Há três técnicas para avaliação do desempenho: simulação,
medição de um sistema real e modelagem analítica. A seleção da técnica depende
do nível desejado de precisão assim com dos recursos avaliados para resolver os
problemas. A seleção das técnicas está avaliada no capitulo 3
7. SELECIONAR
A CARGA DE TRABALHO: A carga de trabalho consiste em uma lista de serviços
solicitados ao sistema. Ela depende de cada técnica de avaliação escolhida. Em
todo caso é essencial que a carga represente o uso do sistema na vida real e
para produzir uma carga representativa é necessário medir e caracterizar a
carga em um sistema já existente.
8. PROJETAR
EXPERIMENTOS: Com os fatores e seus níveis definidos é necessário decidir uma
sequencia para que o experimento forneça o máximo de informação com o mínimo de
esforço. Na pratica é interessante conduzir o experimento em duas partes. Uma
primeira parte com um grande número de fatores, mas um pequeno número de níveis.
Sem seguida é escolhido os fatores que mais afetam o sistema e então gerados um
maior numero de níveis a eles.
9. ANALISAR
E INTERPRETAR DADOS: É importante reconhece que a saída das medidas e simulações
são quantidades aleatórias e que variam quando o experimento é repetido. Ao
comprar duas alternativas é necessário levar em conta a variabilidade dos
resultados, pois comparar as médias pode resultar em conclusões imprecisas. E
interpretar é a chave da “arte da análise”. O experimento em si não gera
conclusões, apenas resultados e são este resultados que farão com que o
analista ou o tomador de decisão chegar a uma conclusão. E ainda existe a
possibilidade de vários analistas obterem o mesmo resultado, porém tirarem
conclusões diferentes.
10. APRESENTAR OS RESULTADOS: No fim de todos os
passos do projeto de desempenho, é necessário comunicar a comunidade os
resultados. É importante que os resultados sejam fáceis de entender.
Normalmente são apresentados na forma de gráfico e sem jargão estatístico em
suas escalas corretas. Outro ponto é que, com o conhecimento obtido no estudo
pode ser necessário redefinir alguma decisão dos passos anteriores como
redefinir as limitações e os fatores, por exemplo. Isso leva a conclusão que o
projeto completo consiste em vários ciclos e não em uma simples sequencia de
passos.
Resumindo:
1.
Definir os objetivos do estudo e limitações do
sistema.
2.
Listar serviços e possíveis saídas.
3.
Selecionar métricas de desempenho
4.
Listar parâmetros da carga e do sistema
5.
Selecionar fatores e seus níveis
6.
Selecionar a técnica de avaliação
7.
Selecionar a carga de trabalho
8.
Projetar o experimento
9.
Analisar e interpretar os dados.
10.
Apresentar os resultados ou fazer de novo, se necessário.