Bottlenecks - Métricas de performance de servidores

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.520 ]

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.

Página anterior     Próxima página

Páginas do artigo
   1. Métricas para avaliação de performance - Análise de utilização de disco
   2. Métricas para avaliação de performance - Análise de utilização do processador
   3. Métricas para avaliação de performance - Análise de utilização da Memória
   4. Métricas para avaliação de performance - Análise de utilização da Rede
Outros artigos deste autor

Instalando Zabbix no Debian Lenny

Leitura recomendada

Avaliação da interface do sistema operacional Linux

Phoronix Test Suite - Um framework para benchmark

Um olhar sobre o Portage-Tools - Parte III

Gnuplot - versátil ferramenta científica

WeeChat - Um (O) cliente IRC CLI

  
Comentários
[1] Comentário enviado por clovesjr em 12/07/2010 - 09:10h

Mario,

Você usa os comandos top, iostat, sar, etc para tirar estes dados ou você usa alguma outra ferramenta?

[]s

Cloves Jr

[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

[3] Comentário enviado por mariomayerle em 12/07/2010 - 15:13h

Caraca. Com 6.8 de nota eu não consigo nem ficar pra exame. rs
Obrigado pela crítica que (não) veio acompanhada da nota. =D
Abraços a todos.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts