Um pouco mais de Perfmon, Contadores de Performance, O que monitorar?

Publicado em:
11/01/2011

Fonte: Fábio Augusto

Em um consultório, o médico solicita alguns exames quando o paciente reclama de algum problema de saúde. De fato, é impossível para o profissional adivinhar a solução para um problema sem antes levantar algumas informações. Um exame de sangue, por exemplo, analisa alguns indicadores cujos valores devem estar enquadrados em uma faixa de valores aceitáveis para serem considerados saudáveis.

No computador não é muito diferente. Quando algo está errado, uma coleta de indicadores é necessária antes da solução do problema. Estes poderiam ser:

  • Entrevistar o usuário que reclama de um problema. Ele é uma fonte de indicadores, não?
  • Levantar logs, sejam do Event Viewer ou de aplicações.
  • Análisar contadores de performance.
  • Utilizar ferramentas de debug como o Kernel Debugger e o Debug Diagnostics.

E outros indicadores.

Neste post, vamos colocar nossos esforços na análise dos contadores de performance. Vamos ver quais são os indicadores de performance mais expressivos para as situações mais comuns. Como o perfmon já mudou de nome inúmeras vezes (de Performance Monitor no Windows NT a Reliability and Performance Monitor no Windows Vista/Windows 2008), vamos nos referir a ele apenas pelo seu executável, cujo nome permaneceu imutável: perfmon. Nosso trabalho será nele. Abra o perfmon e vamos lá.

Obs.: Embora meu objetivo principal seja fornecer um bom conteúdo em português, procuro manter a referência dos termos em inglês para que o leitor possa aprofundar o tema utilizando os documentos oficiais do fornecedor ou de terceiros, muito mais numerosos na lingua inglesa. Os nomes dos contadores serão expostos em inglês e, posso ou não, oferecer uma tradução no texto, até porque não costumo utilizar o Windows em português no ambiente profissional, que é constituído, exclusivamente, de servidores. A tradução para o português é bastante simples e é uma obrigação do profissional de TI ter alguma familiaridade com esta língua.

Vamos começar pela grande vedete. Quando falamos de problemas de performance, logo vem à cabeça o processador.

Processor/% Processor Time

O contador % Processor Time é o preferido quando o assunto é avaliar a utilização do processador. Ao abrir o perfmon, ele já está lá, por padrão. Embora o contador exiba a situação do processador, ele deixa de informar o quanto o processador está ocupado de fato. Para medir o uso do processador (ou dos processadores em conjunto), eu recomendo o próximo contador.

System/Processor Queue Length (Comprimento da Fila do Processador)

Este contador, ao invés de avaliar o uso de um único processador, avalia o enfileiramento de threads aguardando oportunidade de execução em todos os processadores. Ele é o melhor indicador para avaliar o estado real do(s) processador(es). Regra geral, 2 threads para cada processador é um valor aceitável. Acima disto, pode pensar em um upgrade ou avaliar o que está usando tanta CPU e otimizar quando for possível. Por que este indicador é melhor que o % Processor Time? Se você tiver um processador com 99,9999% de utilização, mas não tiver enfileiramento, não há problema. Este cenário não é comum, mas exemplica bem a importância do monitoramento da fila.

Agora vamos ver a memória. É comum ver por aí especialistas em memória, mas será que estão olhando nos lugares certos? Vamos dar uma olhada em alguns contadores de performance relacionados ao uso da memória. Como no caso do processador, os mais populares não são os mais expressivos.

Memory/Available MBytes

Este contador, MBytes Disponíveis, mostra única e exclusivamente a quantidade de memória física (hardware) disponível. A alocação de memória física é controlada pelo Memory Manager e, pouca memória física disponível, não significa problema em todos os casos. Quando este valor está muito próximo de 0, é necessário observar outros valores antes de incriminar a memória.

Memory/Commited Bytes

O contador Bytes Comprometidos (esta é a tradução do Windows, embora pareça estranha quando descobrimos para que serve) indica qual é a quantidade de memória virtual em uso. O seu limite, denominado Commit Limit, é a soma da memória física (hardware) com a soma dos arquivos de paginação (pagefiles) configurados no sistema. Este é um contador importante e é útil quando queremos determinar se precisamos instalar mais RAM ou quando queremos saber se o pagefile está configurado corretamente. O valor deve ser igual ou inferior, tanto quanto possível, à quantidade de memória física instalada. Em outras palavras, se você tem 2GB de memória, um pagefile de 2GB e 3GB de bytes comprometidos, significa que o seu Windows está ocupando 1GB de memória virtual no disco (3GB comprometidos – 2GB físicos instalados). A idéia é que o Windows utilize pouco o pagefile, porque o pagefile está no disco e o disco é lento.

Mas, quanto é muito? Não dá para dizer olhando apenas este contador a menos que a desproporção seja evidente, como 2GB de memória física e 4GB de Commited Bytes. Este contador levanta apenas a suspeita.

Antes de fazer o churrasco, vamos salgar a carne:

Quando uma página de memória não está residente na memória física e uma thread tenta acessá-la, esta thread é bloqueada e uma interrupção de hardware ocorre. Isto é chamado page fault. Para a resolução da paged fault, a página procurada deve ser resgatada de volta para a memória física e aí começa o problema.

Existem dois tipos de page faults: hard page fault e soft page fault. Aqui é comum encontrarmos um problema de conceito. Muitos profissionais adoram monitorar o contador Memory/Page Fault/sec. O problema com este contador é que ele mostra todas as page faults, soft e hard (No Windows Vista e 2008, os hard faults são exibidos por padrão quando abrimos o Reliability and Performance Monitor) . Todos nós amamos a soft page fault, que nada mais é do que dizer que a página estava no cache, ou seja, em memória. É a page fault do bem. Nós não gostamos é da hard page fault, pois esta ocorre quando a página está no disco.

Então faz sentido olhar quanto há de cache. Se tem bastante cache, as page faults, quando ocorrerem, poderão vir do cache ao invés do disco. Você pode verificar este valor olhando na tab Performance do Task Manager ou usando kernel debugger. Com o debugger, você vai obter os valores exatos das listas de memória, que é um assunto para outro post.

Além de olhar o cache, você pode verificar se a performance do disco está sendo afetada, nosso próximo contador.

De forma geral, quando o cache e a memória física estão baixos, e o Commited Bytes alto, você precisa instalar mais RAM.

Vamos ver os discos.

Physical Disk/% Disk Time

Sempre que monitorar o disco, utilize o objeto Physical Disk. Afinal, você quer saber se o disco todo está comprometido. Outra recomendação. Não utilize este contador. Ele tem um problema sério. Apesar de ser uma porcentagem, ele passa de 100% quando o disco está muito ocupado, pois ele é a soma de outros contadores. Confie em mim e esqueça este contador para sempre. Tá, não precisa esquecer. Apenas lembre de não utilizá-lo.

Physical Disk/% Idle Time

Este pobre contador, ignorado por muitos, é um dos melhores contadores para avaliar a performance do disco. Ele foi introduzido no Windows 2000 e mede, simplesmente, a porcentagem de tempo em que o disco não está fazendo nada. Podemos concluir que seu inverso é, de fato, o tempo de uso do disco. Lembre-se deste contador e utilize-o em conjunto com o próximo.

Physical Disk\Current Disk Queue Length

Na mesma linha do Processor Queue Length, este contador mede a quantidade de requisições aguardando atenção do disco. É o contador mais importante para avaliar contenções no disco, na minha opinião. Ele pode e deve ser utilizando em conjunto com o % Idle Time. Vale a mesma regra geral do processador: para cada disco, 2 requisições. Isto é apenas um parâmetro de comparação.

Tome cuidado ao avaliar este contador quando o disco estiver em um storage. Você nem sempre sabe quantos discos físicos estão compondo um disco lógico. Lembre-se de dividir o valor observado pelo número de discos físicos para ter uma idéia melhor do que está ocorrendo.

Não vamos falar da rede aqui. Não é comum ter problemas de banda na maioria dos ambientes. É mais comum observar erros na configuração das interfaces de rede ou problemas causados por drivers desatualizados. Pode haver necessidade de uma análise mais apurada em ambientes que envolvam replicação de arquivos pela rede, video ou grande acesso concorrente de usuários. Vamos tratar deste tema em outro post.

Estes são os principais itens para uma primeira análise de um ambiente com problemas de performance. Quando uma alteração é detectada em um dos indicadores, é necessário aprofundar a análise naquela área utilizando outros contadores ou ferramentas.

Lembrando que sempre devemos monitorar o Servidor , mas não somente quando ele realmente apresenta problemas,  é sempre bom avaliar o seu ambiente e para que ele trabalhe saudável.
Se quiser mais dados, baixem este documento, aqui estão os 4 principais itens a serem monitorados.
Fica ai a dica,
[  ]’s

8 respostas em “Um pouco mais de Perfmon, Contadores de Performance, O que monitorar?

  1. Muito legal seu artigo.

    Gostaria de saber se existe algum contador que eu posso usar para monitorar o serviço DNS. Tenho um servidor, e não sei se ele está sobrecarregado ou não.

    • Olá Filipe, existe sim, apesar que existem varias instâncias para ser monitoradas, vai depender de que funcao seu DNS fornece a rede, mas para saber se tem gargalo, voce deve monitorar a instancia que chama :

      Consulta total recebida –> O número total de consultas recebidas pelo servidor DNS.
      Consulta total recebida/s –>O número médio de consultas recebidas pelo servidor DNS por segundo..

      Mais informaçõs aqui –> http://technet.microsoft.com/pt-br/library/cc778608(WS.10).aspx

      Se obtiver um valor proximo a 90% de uso, existe um gargalo , a resolução de nomes deve ser aumentada e balanceada para outro servidor.
      Espero ter ajudado

      Abraço

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s