quinta-feira, 25 de abril de 2013

Resumo: Art of Computer Systems Performance Analysis: Techniques for Experimental Measurements Simulation and Modeling - Capítulo 2



Livro: "Art of Computer Systems Performance Analysis: Techniques for Experimental Measurements Simulation and Modeling" de Raj Jain

 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.

Nenhum comentário:

Postar um comentário