Mudanças entre as edições de "Contadores de desempenho"
(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. |