Partilhar via


Degradação do desempenho causada por erros de tamanho do setor de E/S desalinhados no SQL Server

Aplica-se ao: SQL Server

Este artigo apresenta como resolver a degradação do desempenho devido a operações de E/S desalinhadas no SQL Server quando o tamanho do setor físico difere entre as unidades de disco.

Visão geral

O SQL Server pode encontrar operações de E/S desalinhadas quando o tamanho do setor físico das unidades de disco é diferente entre servidores ou sistemas de armazenamento. Essa condição pode degradar o desempenho e é particularmente comum em ambientes onde as incompatibilidades de tamanho do setor são evidentes, como:

  • Máquinas virtuais com armazenamento anexado
  • Grupos de disponibilidade AlwaysOn
  • Envio de logs
  • Migrações de hardware

Por exemplo, um problema comum ocorre quando o servidor primário usa um tamanho de setor de 4 KB enquanto o servidor secundário usa 512 bytes. Esse problema causa operações de E/S desalinhadas durante a sincronização de log ou processos de restauração. Esse desalinhamento pode resultar em degradação do desempenho, como restaurações lentas ou atrasos de sincronização.

O sinalizador de rastreamento 1800 garante que o SQL Server use um tamanho de setor consistente de 4 KB para operações de E/S de log de transações, independentemente do tamanho do setor físico do disco subjacente. Esse sinalizador de rastreamento foi projetado para manter o desempenho em ambientes mistos em que os servidores podem ter sido atualizados ou migrados para hardware com especificações de armazenamento diferentes.

Para bancos de dados com cargas de trabalho com uso intensivo de gravação, o alinhamento das operações de E/S pode melhorar significativamente o desempenho, enquanto os benefícios podem ser insignificantes em ambientes com uso intensivo de leitura.

Sintomas

Você pode experimentar degradação de desempenho no SQL Server devido a operações de E/S desalinhadas se encontrar qualquer um dos seguintes sintomas:

  • Tempos de sincronização ou restauração lentos: operações de E/S desalinhadas podem resultar em tempos de sincronização ou restauração lentos, especialmente em ambientes SQL Server distribuídos, como grupos de disponibilidade Always On ou envio de logs.

  • Mensagens de erro no log de erros do SQL Server: mensagens de erro relacionadas a operações de E/S podem indicar problemas de desalinhamento, como:

    There have been # misaligned log IOs which required falling back to synchronous IO.

  • Gargalos de desempenho durante operações de gravação intensiva: operações de gravação intensiva, como backups de log ou restaurações de banco de dados, podem apresentar alta latência de disco e maior tempo de espera de E/S devido a operações de E/S desalinhadas, levando a gargalos de desempenho e tempos de resposta lentos.

Verifique o tamanho do setor

Para evitar operações de E/S desalinhadas, é importante garantir que o tamanho do setor físico das unidades de disco seja consistente em todos os servidores e sistemas de armazenamento.

Você pode verificar o tamanho do setor executando o seguinte comando em um prompt de comando com privilégios elevados:

fsutil fsinfo sectorinfo <volume path name>

A captura de tela a seguir mostra a fsutil fsinfo sectorinfo saída do comando para a E: unidade, que tem um tamanho de setor de 8 KB, mas um tamanho de setor físico de 4 KB, causando operações de E/S desalinhadas:

Captura de tela da saída do prompt de comando do tamanho do setor de 8 KB.

Solução

Se você estiver enfrentando degradação de desempenho devido a operações de E/S desalinhadas e não puder modificar o tamanho do setor, poderá usar o sinalizador de rastreamento 1800 como um parâmetro de inicialização global para forçar o SQL Server a usar um tamanho de setor consistente de 4 KB para operações de E/S de log de transações.

Para habilitar o sinalizador de rastreamento 1800 como um parâmetro de inicialização, siga estas etapas:

  1. No sistema em que o SQL Server está instalado e há uma incompatibilidade de tamanho do setor físico, abra o SQL Server Configuration Manager.

  2. Expanda SQL Server Configuration Manager (Local) e selecione Serviços do SQL Server.

  3. Clique com o botão direito do mouse na instância do SQL Server que você deseja configurar e selecione Propriedades:

    Captura de tela do menu do botão direito do mouse do serviço SQL Server com Propriedades realçadas.

  4. Em Propriedades do SQL Server, selecione a guia Parâmetros de Inicialização , insira -T1800 o campo Especificar um parâmetro de inicialização e selecione Adicionar para adicionar o parâmetro à lista.

    Captura de tela da adição do sinalizador de rastreamento como um parâmetro de inicialização nas Propriedades do SQL Server.

  5. Confirme se o sinalizador de rastreamento foi adicionado à lista de parâmetros de inicialização. Selecione OK para salvar suas alterações:

    Captura de tela da janela de propriedades do SQL Server com os parâmetros de inicialização realçados.

  6. Reinicie o serviço SQL Server para habilitar o sinalizador de rastreamento quando a instância for iniciada.

Observação

O Sinalizador de Rastreamento 1800 também pode ser habilitado em sistemas com um tamanho de setor de 4 KB sem nenhum impacto adverso no desempenho.

Referências

KB3009974 - CORREÇÃO: Sincronização lenta quando os discos têm tamanhos de setor diferentes