Mudanças entre as edições de "Contadores de desempenho"

De MSTECH wiki
Ir para: navegação, pesquisa
(Criou página com '==Introdução== O objetivo deste documento é oferecer uma visão geral sobre os principais contadores do Perfmon, bem como um direcionamento para as análises de desempenho...')
 
Linha 51: Linha 51:
  
 
O problema desse contador é que ninguém sabe o que isso significa. Se você quiser falar sobre fila com pessoal de storage, então fale sobre “outstanding I/O” e não sobre “Average Disk Queue Length”. Curiosamente, o contador para medir “outstanding I/O” possui um nome muito semelhante: “Current Disk Queue Length”.
 
O problema desse contador é que ninguém sabe o que isso significa. Se você quiser falar sobre fila com pessoal de storage, então fale sobre “outstanding I/O” e não sobre “Average Disk Queue Length”. Curiosamente, o contador para medir “outstanding I/O” possui um nome muito semelhante: “Current Disk Queue Length”.
 +
|-
 +
|}
 +
 +
 +
===Processador===
 +
 +
{| {{table}} class="wikitable"
 +
| align="center" style="background:#f0f0f0;"|'''Contador'''
 +
| align="center" style="background:#f0f0f0;"|'''Caminho'''
 +
| align="center" style="background:#f0f0f0;"|'''Descrição'''
 +
| align="center" style="background:#f0f0f0;"|'''Valores para análise'''
 +
|-
 +
|Tempo total do processador
 +
|Processor \ %Processor time
 +
|Mede a utilização da CPU de cada processador.
 +
|Não exceder 80% por mais de 10 minutos ao longo do período de teste.
 +
 +
Fabrício Catae: Verificar se o consumo de CPU está abaixo de 80%. É importante manter uma margem de 10-20% para permitir um eventual pico de utilização.
 +
|-
 +
|Tempo privilegiado
 +
|Processor \ %Privileged Time
 +
|
 +
|Fabrício Catae: Verificar se o consumo em Kernel Time está abaixo de 30%. Não faz sentido um servidor de banco de dados gastar mais tempo em Kernel executando tarefa de sistemas ao invés de executar as queries SQL.
 +
|-
 +
|Fila do processador
 +
|System/Processor Queue Length
 +
|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.
 +
 +
Fabrício Catae: Monitorar esse valor ao longo do tempo e comparar com o consumo de CPU. Alto consumo de CPU associado a filas de processador indicam que existem processos externos afetando o desempenho do SQL Server.
 +
|-
 +
|Mudança de contexto
 +
|System \ Context Switches/sec
 +
|A mudança de contexto ocorre quando o kernel muda o processador de um segmento para outro, por exemplo, quando um segmento com uma prioridade maior do que o segmento em execução torna-se pronto.
 +
|Quanto menor melhor.
 +
O valor ideal recomendado é de no máximo 10000 por CPU.
 +
 +
A quantidade de troca de contexto em um SQL Server deve se manter baixa mesmo sob carga. Um aumento no indicador Context Switches/sec ocorre devido a execução de threads de alta prioridade, como as Interrupções (INT), Asynchronous Procedure Call (APC) e Deferred Procedure Call (DPC) ou se houver um grande número de chamadas ao Kernel (System Calls/sec) ou disparo de exceções (Exception Dispatches/sec). O valor ideal recomendado é de no máximo 10000 por CPU.
 
|-
 
|-
 
|}
 
|}

Edição das 13h31min de 7 de dezembro de 2016

Introdução

O objetivo deste documento é oferecer uma visão geral sobre os principais contadores do Perfmon, bem como um direcionamento para as análises de desempenho.

Contadores

Disco

Contador Caminho Descrição Valores para análise
Percentagem de tempo ocioso LogicalDisk \ % Idle time Este contador fornece quanto tempo o disco permaneceu em estado de repouso, ou seja, todos os pedidos do sistema operacional para o disco ter sido concluída e há zero de pedidos pendentes. Este contador varia de 100 (ou seja, sempre ocioso) para 0 (ou seja, sempre ocupado).

Fabio Zibiani: 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.

Acima de 75%
Percentagem de espaço livre LogicalDisk \ % Free Space Mostra a porcentagem do espaço total utilizável no disco lógico selecionado.
Comprimento da Fila de Disco Atual LogicalDisk Disk\ Current Disk Queue Length Technet:

Esse contador mostra o número de solicitações pendentes no disco no momento em que os dados de desempenho são coletados.

O 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.

Technet: Para esse contador, valores menores são melhores. Valores acima de 2 por disco podem indicar um afunilamento e devem ser investigados. Isso significa que um valor até 8 pode ser aceitável para um LUN composto de quatro discos. Os afunilamentos podem criar uma lista de pendências que pode se expandir para além do servidor atual que está acessando o disco e resultar em longos tempos de espera para os usuários. As possíveis soluções para um afunilamento são adicionar discos à matriz RAID, substituir os discos existentes por discos mais rápidos ou mover alguns dados para outros discos.

Fabio Zibiani: 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.

Comprimento Médio da Fila de Disco LogicalDisk Disk\ Average Disk Queue Length TechNET: Esse contador mostra o número médio de solicitações de leitura e gravação que estavam enfileiradas para o disco selecionado durante o intervalo de tempo. Technet: A regra é que deve haver duas ou menos solicitações de leitura e gravação pendentes por eixo, mas isso pode ser difícil de medir devido à virtualização de armazenamento e a diferenças nos níveis de RAID entre configurações. Verifique se há comprimentos de fila de disco maiores do que a média, combinados a latências de disco maiores do que a média. Essa combinação pode indicar que o cache de matriz de armazenamento está sobrecarregado ou que o compartilhamento de eixos com outros aplicativos está afetando o desempenho.

Fabrício Catae: Os contadores de fila de disco e porcentagem de uso do disco são os piores indicadores de Performance. Jamais use. Não existe um valor de mínimo ou máximo As pessoas falam em 2 vezes o número de spindle, sendo que podemos considerar que os spindles são os discos físicos. Entretanto, o mundo atual de SAN e virtualização impede que esse número seja determinado com precisão. Além disso, os discos montados em LUN podem compartilhar os mesmos arrays de disco com outras LUN – fica inviável determinar qual seria esse valor limite. Esses contadores fornecem muitos falsos-positivos. Todos os sistemas de alta performance de disco realizam enfileiramento de disco para aumentar o throughput. Por isso, ao invés de monitorar a fila, é mais importante medir o tempo de latência do storage. A fila é consêquência: quando o storage apresenta alta latência de disco, causa enfileiramento das requisições.

O problema desse contador é que ninguém sabe o que isso significa. Se você quiser falar sobre fila com pessoal de storage, então fale sobre “outstanding I/O” e não sobre “Average Disk Queue Length”. Curiosamente, o contador para medir “outstanding I/O” possui um nome muito semelhante: “Current Disk Queue Length”.


Processador

Contador Caminho Descrição Valores para análise
Tempo total do processador Processor \ %Processor time Mede a utilização da CPU de cada processador. Não exceder 80% por mais de 10 minutos ao longo do período de teste.

Fabrício Catae: Verificar se o consumo de CPU está abaixo de 80%. É importante manter uma margem de 10-20% para permitir um eventual pico de utilização.

Tempo privilegiado Processor \ %Privileged Time Fabrício Catae: Verificar se o consumo em Kernel Time está abaixo de 30%. Não faz sentido um servidor de banco de dados gastar mais tempo em Kernel executando tarefa de sistemas ao invés de executar as queries SQL.
Fila do processador System/Processor Queue Length 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.

Fabrício Catae: Monitorar esse valor ao longo do tempo e comparar com o consumo de CPU. Alto consumo de CPU associado a filas de processador indicam que existem processos externos afetando o desempenho do SQL Server.

Mudança de contexto System \ Context Switches/sec A mudança de contexto ocorre quando o kernel muda o processador de um segmento para outro, por exemplo, quando um segmento com uma prioridade maior do que o segmento em execução torna-se pronto. Quanto menor melhor.

O valor ideal recomendado é de no máximo 10000 por CPU.

A quantidade de troca de contexto em um SQL Server deve se manter baixa mesmo sob carga. Um aumento no indicador Context Switches/sec ocorre devido a execução de threads de alta prioridade, como as Interrupções (INT), Asynchronous Procedure Call (APC) e Deferred Procedure Call (DPC) ou se houver um grande número de chamadas ao Kernel (System Calls/sec) ou disparo de exceções (Exception Dispatches/sec). O valor ideal recomendado é de no máximo 10000 por CPU.