Partilhar via


Coletar linha de base: práticas recomendadas de desempenho para o SQL Server na VM do Azure

Aplica-se a:SQL Server em VM do Azure

Este artigo fornece informações para coletar uma linha de base de desempenho como uma série de práticas recomendadas e diretrizes para otimizar o desempenho do SQL Server em Máquinas Virtuais (VMs) do Azure.

Normalmente, há um compromisso entre a otimização de custos e a otimização de desempenho. Esta série de práticas recomendadas de desempenho concentra-se em obter o melhor desempenho para o SQL Server em Máquinas Virtuais do Azure. Se sua carga de trabalho for menos exigente, talvez você não precise de todas as otimizações recomendadas. Considere suas necessidades de desempenho, custos e padrões de carga de trabalho ao avaliar essas recomendações.

Visão geral

Para uma abordagem prescritiva, reúna contadores de desempenho usando PerfMon/LogMan e capture estatísticas de espera do SQL Server para entender melhor as pressões gerais e possíveis gargalos do ambiente de origem.

Comece por coletar a CPU, a memória, IOPS, a taxa de transferência , e a latência da carga de trabalho de origem nos horários de pico seguindo a lista de verificação de desempenho da aplicação .

Reúna dados durante as horas de pico, como cargas de trabalho durante o seu dia útil típico, mas também outros processos de alta carga, como processamento de fim de dia e cargas de trabalho ETL de fim de semana. Considere expandir os seus recursos para cargas de trabalho atipicamente pesadas, como o processamento de fim de trimestre, e depois reduzi-los assim que a carga de trabalho estiver concluída.

Use a análise de desempenho para selecionar o Tamanho da VM que corresponda aos requisitos de desempenho da sua carga de trabalho.

Armazenamento

O desempenho do SQL Server depende muito do subsistema de E/S e o desempenho do armazenamento é medido por IOPS e taxa de transferência. A menos que seu banco de dados caiba na memória física, o SQL Server constantemente traz páginas de banco de dados para dentro e para fora do pool de buffers. Os arquivos de dados do SQL Server devem ser tratados de forma diferente. O acesso aos arquivos de log é sequencial, exceto quando uma transação precisa ser revertida onde os arquivos de dados, incluindo tempdb, são acessados aleatoriamente. Se você tiver um subsistema de E/S lento, os usuários poderão enfrentar problemas de desempenho, como tempos de resposta lentos e tarefas que não são concluídas devido a tempos limites.

As máquinas virtuais do Azure Marketplace têm arquivos de log em um disco físico separado dos arquivos de dados por padrão. A contagem e o tamanho dos ficheiros de dados tempdb atendem às melhores práticas e são direcionados para a unidade efémera D:\.

Os seguintes contadores PerfMon podem ajudar a validar a taxa de transferência de E/S exigida pelo SQL Server:

  • \LogicalDisk\Disk Reads/Sec (ler IOPS)
  • \LogicalDisk\Disk Writes/Sec (IOPS de gravação)
  • \LogicalDisk\Disk Read Bytes/Sec (requisitos de taxa de transferência de leitura para os arquivos de dados, log e tempdb)
  • \LogicalDisk\Disk Write Bytes/seg (requisitos de taxa de transferência de escrita para os arquivos de dados, log e tempdb)

Usando IOPS e requisitos de taxa de transferência em níveis de pico, avalie os tamanhos de VM que correspondem à capacidade de suas medições.

Se a sua carga de trabalho exigir IOPS de leitura de 20K e IOPS de gravação de 10K, pode escolher E16s_v3 (com IOPS de até 32K em cache e 25600 IOPS sem cache) ou M16_s (com IOPS de até 20K em cache e 10K sem cache) com 2 discos P30 distribuídos em faixas usando Espaços de Armazenamento.

Certifique-se de entender os requisitos de taxa de transferência e IOPS da carga de trabalho, pois as VMs têm limites de escala diferentes para IOPS e taxa de transferência.

Memória

Rastreie a memória externa usada pelo sistema operacional, bem como a memória usada internamente pelo SQL Server. Identificar a pressão para qualquer componente ajudará a dimensionar máquinas virtuais e identificar oportunidades de ajuste.

Os seguintes contadores PerfMon podem ajudar a validar a integridade da memória de uma máquina virtual do SQL Server:

Computação

A computação no Azure é gerenciada de forma diferente do local. Os servidores locais são construídos para durar vários anos sem uma atualização devido à sobrecarga de gerenciamento e ao custo de aquisição de novo hardware. A virtualização atenua alguns desses problemas, mas os aplicativos são otimizados para aproveitar ao máximo o hardware subjacente, o que significa que qualquer alteração significativa no consumo de recursos requer o reequilíbrio de todo o ambiente físico.

Isso não é um desafio no Azure, onde uma nova máquina virtual em uma série diferente de hardware, e até mesmo em uma região diferente, é fácil de alcançar.

No Azure, você deseja aproveitar o máximo possível dos recursos das máquinas virtuais, portanto, as máquinas virtuais do Azure devem ser configuradas para manter a CPU média o mais alta possível sem afetar a carga de trabalho.

Os seguintes contadores PerfMon podem ajudar a validar a integridade da computação de uma máquina virtual do SQL Server:

  • \Informações do processador(_Total)% Tempo do processador
  • \Process(sqlservr)% Tempo do processador

Observação

Idealmente, tente usar 80% da sua capacidade de computação, com picos acima de 90% mas não atingindo 100% por qualquer período prolongado. Fundamentalmente, você só deseja provisionar a computação de que o aplicativo precisa e, em seguida, planejar a expansão para cima ou para baixo conforme a empresa exige.

Próximos passos

Para saber mais, consulte os outros artigos desta série de práticas recomendadas:

Para obter as práticas recomendadas de segurança, consulte Considerações de segurança para o SQL Server em Máquinas Virtuais do Azure.

Consulte outros artigos da Máquina Virtual do SQL Server em Visão geral do SQL Server em Máquinas Virtuais do Azure. Se você tiver dúvidas sobre máquinas virtuais do SQL Server, consulte o Perguntas freqüentes.