Ter um servidor bem dimensionado que suporte uma aplicação para um ambiente produtivo empresarial de mais de 30.000 usuários é um desafio. A resposta é investir em testes de performance, antes, é necessário criar as métricas que serão observadas e mensuradas durante os testes. As métricas aqui identificadas poderão servir como verificadores de existência de bottlenecks.
[ Hits: 29.941 ]
Por: Mário Mayerle Filho em 09/07/2010 | Blog: http://m2f0.com
Métricas para avaliação de performance - Análise de utilização do processador
Processor Time: É a porcentagem de tempo que o processador leva para processar um thread. É calculado mensurando-se o tempo que um thread em espera leva para tornar-se ativa e subtraindo-se do intervalo total de processamento. Esta métrica é um indicador primário de atividade do processador e, em porcentagem, revela a média dos dados processados em um intervalo de tempo. Essa média é calculada aferindo-se o tempo que o serviço encontra-se inativo e subtraindo-se de 100%.
Processor Queue Length: É o número de threads na fila de dados a serem processados pelo processador. Encontramos somente uma fila para um processador. No caso de um computador com dois ou mais processadores teremos uma fila para cada processador. A aferição de 10 threads por segundo em uma processor queue é considerada normal, dependendo da carga de trabalho imposta ao processor. Caso a análise da média do comprimento da fila de processamento for maior do que o número de processos, então, teremos um bottleneck.
Priority Process CPU Analysis: Indica a prioridade que um processo pode assumir na fila de processos do processador. Pode variar de -20 a 20. Quanto menor o número maior será a sua prioridade. Muitos processos com prioridade alta podem constituir um bottleneck.
Interrupt Time: É o tempo que o processador leva para receber e responder as interrupções de hardware. Este valor é um indicador indireto das atividades nos dispositivos de hardware que geram interrupções, como mouse, teclado, discos rígidos, placas de rede e outros dispositivos de periféricos. A maioria dos sistemas interrompem os processadores de 10 em 10 milissegundos, criando uma atividade de interrupção em background. Um grande aumento neste contador indica um potencial problema de hardware.
Network Utilization Analysis: Aferido em Bytes total/segundos, refere-se à taxa de envio e de recebimento de cada interface de rede. Corresponde a soma de cada byte enviado e recebido por cada interface de rede a cada segundo. Este indicador nos permite conhecer a capacidade de envio e recebimento de bytes de cada interface de rede. Com o conhecimento da capacidade de cada interface de rede é possível saber se existe um bottleneck no tráfego de rede. Esta análise convert Bytes total/segundos em bits e compara com a largura de banda disponível na rede. Uma porcentagem segura é manter o indicador abaixo de 50% de consumo de banda de rede.
Network Output Queue Length: Esta métrica informa a quantidade de threads aguardando na interface de rede. Caso haja uma grande quantidade de threads aguardando podemos considerar um bottleneck de I/O similar a baixa latência ou baixa bandwith da rede. Caso haja pelo menos dois pacotes na fila (sim, medimos as threads em pacotes) é necessário corrigir este bottleneck. Uma aferição que não caracteriza a presença de um bottleneck é zero.
Memory Committed Bytes: Este indicador refere-se à quantidade (bytes) em memória virtual. Memória virtual são espaços físicos reservados para paginação no disco rígido. Podem haver um ou mais arquivos em cada disco rígido. Memory Committed Bytes é aferido de forma precisa e não por média, geralmente retorna o último valor observado.
[2] Comentário enviado por mariomayerle em 12/07/2010 - 09:24h
Ola Cloves,
Atualmente estou usando a seguinte lista de ferramentas:
Memoria - free, vmstat, mpstat, iostat, sar, pmap, htop;
CPU - vmstat, mpstat, iostat, sar e pmap;
I/O - vmstat, mpstat, iostat, sar;
Processos (e Kernel) - ipcs, ipcrm, dmesg, pidstat;
Rede - TCPDump, ping, ifstat, iptraf, atsar;
Neste momento me encontro setando e configurando um template no Zabbix para realizar a coleta das informações.
Novas métricas estão sendo descobertas. Quando tiver concluído a próxima etapa publicarei aqui no vol.
Qualquer dúvida estamos aí.
Abraços