Estabeleça métricas de linha de base

Concluído

Uma linha de base é uma coleção de medições de dados que ajuda você a entender o "estado estacionário" normal do desempenho do seu aplicativo ou servidor. Ter os dados recolhidos ao longo do tempo permite-lhe identificar alterações do estado normal. As linhas de base podem ser tão simples quanto um gráfico de utilização da CPU ao longo do tempo ou agregações complexas de métricas para oferecer dados de desempenho de nível granular de chamadas de aplicativos específicos. A granularidade da linha de base dependerá da criticidade do desempenho do banco de dados e do aplicativo.

Com qualquer tipo de carga de trabalho de aplicativo, é imperativo estabelecer uma linha de base de trabalho. Uma linha de base irá ajudá-lo a identificar se um problema contínuo deve ser considerado dentro dos parâmetros normais ou excedeu determinados limites. Sem uma base de referência, todos os problemas encontrados podem ser considerados normais e, portanto, não requerem qualquer intervenção adicional.

Correlacionando o desempenho do SQL Server e do sistema operacional

Ao implantar o SQL Server em uma máquina virtual do Azure, é fundamental correlacionar o desempenho do SQL Server com o desempenho do sistema operacional subjacente. Se você estiver usando Linux como sistema operacional, precisará instalar o InfluxDB, o Collected e o Grafana para capturar dados semelhantes ao Monitor de Desempenho do Windows. Esses serviços coletam dados do SQL Server e fornecem uma interface gráfica para revisar os dados. A utilização dessas ferramentas no Linux ou no Monitor de Desempenho no Windows pode ser usada em conjunto examinando dados específicos do SQL Server, como estatísticas de espera do SQL Server. O uso dessas ferramentas em conjunto permitirá que você identifique gargalos em hardware ou código. Os contadores do Monitor de Desempenho a seguir são uma amostra de métricas úteis do Windows e podem permitir que você capture uma boa linha de base para uma carga de trabalho do SQL Server:

Processador(_Total)% Tempo do processador - Este contador mede a utilização da CPU de todos os processadores no servidor. É uma boa indicação da carga de trabalho geral e, quando usado em conjunto com outros contadores, esse contador pode identificar problemas com o desempenho da consulta.

Paging File(_Total)% Usage - Em um SQL Server configurado corretamente, a memória não deve ser paginada para o arquivo de paginação no disco. No entanto, em algumas configurações, você pode ter outros serviços em execução que consomem memória do sistema e levam à memória de paginação do sistema operacional para o disco, resultando em degradação do desempenho.

PhysicalDisk(_Total)\Avg. Disk sec/Read e Avg. Disk sec/Write - Este contador fornece uma boa métrica de como o subsistema de armazenamento está funcionando. Seus valores de latência na maioria dos casos não devem ser superiores a 20 ms, e com o Armazenamento Premium você deve ver valores inferiores a 10 ms.

System\Processor Queue Length - Este número indica o número de threads que estão aguardando o tempo no processador. Se for maior que zero, indica a pressão da CPU, indicando que sua carga de trabalho pode se beneficiar de mais CPUs.

SQLServer:Buffer Manager\Page life expectancy - A expectativa de vida da página indica quanto tempo o SQL Server espera que uma página viva na memória. Não há um valor adequado para essa configuração. A documentação mais antiga refere-se a 300 segundos como adequados, mas isso foi escrito em uma era de 32 bits, quando os servidores tinham muito menos RAM. Você deve monitorar esse valor ao longo do tempo e avaliar quedas repentinas. Essas quedas no valor do contador podem indicar padrões de consulta ruins, pressão de memória externa (por exemplo, o servidor executando um pacote SSIS grande) ou podem ser apenas processamento normal do sistema, como executar uma verificação de consistência em um banco de dados grande.

SQLServer:SQL Statistics\Batch Requests/sec - Este contador é bom para avaliar o quão consistentemente ocupado um SQL Server está ao longo do tempo. Mais uma vez, não há nenhum valor bom ou ruim, mas você pode usar esse contador em conjunto com % de tempo do processador para entender melhor sua carga de trabalho e linhas de base.

SQLServer:SQL Statistics\SQL Compilations/sec e SQL Re-Compilations/sec - Esses contadores serão atualizados quando o SQL Server precisar compilar ou recompilar um plano de execução para uma consulta porque não há nenhum plano existente no cache do plano ou porque um plano foi invalidado devido a uma alteração. As recompilações podem indicar T-SQL com dicas de consulta de recompilação ou ser indicativas da pressão de memória no cache de plano causada por muitas consultas ad-hoc ou pressão de memória simples.

Esses contadores são apenas uma amostra dos contadores de monitor de desempenho disponíveis para você. Embora os contadores acima forneçam uma boa linha de base de desempenho, talvez seja necessário examinar mais contadores para identificar problemas de desempenho específicos.

Aguarde estatísticas

Quando um thread está sendo executado e é forçado a aguardar um recurso indisponível, o SQL Server controla essas métricas. Essas informações são facilmente identificáveis através da visualização de gerenciamento dinâmico (Detran). sys.dm_os_wait_stats Essas informações são importantes para entender o desempenho da linha de base do banco de dados e podem ajudá-lo a identificar problemas de desempenho específicos com a execução de consultas e limitações de hardware. Identificar o tipo de espera apropriado e a resolução correspondente será fundamental para resolver problemas de desempenho. As estatísticas de espera estão disponíveis na plataforma SQL do Azure.