Opção affinity I/O mask

Para realizar multitarefas, o Microsoft Windows 2000 e Windows Server 2003 às vezes movem threads de processos entre processadores diferentes. Embora eficiente de um ponto de vista de sistema operacional, essa atividade pode reduzir o desempenho MicrosoftSQL Server sob cargas de sistema pesadas, quando, à medida que cada cache de processador é recarregado repetidamente com dados. Atribuir processadores a threads específicos poderá melhorar o desempenho sob estas condições eliminando recargas de processador; tal associação entre um thread e um processador é chamada de afinidade de processador.

O SQL Server oferece suporte à afinidade de processador por meio de duas opções de máscara de afinidade: affinity mask (também conhecida como CPU affinity mask) e affinity I/O mask. Para obter mais informações sobre a opção affinity mask, consulte Opção de máscara de afinidade. Os suportes à afinidade CPU e E/S para servidores com 33 a 64 processadores requerem o uso adicional do Opção affinity64 mask e Opção affinity64 I/O mask, respectivamente.

ObservaçãoObservação

O suporte à afinidade para servidores com 33 a 64 processadores só está disponível em sistemas operacionais de 64 bits.

A opção affinity I/O mask associa o disco E/S SQL Server a um subconjunto especificado de CPUs. Em ambientes OLTP (online transactional processing) avançados de SQL Server, esta extensão pode aumentar o desempenho de threads SQL Server que emitem E/S. Este aprimoramento não aceita afinidade de hardware para discos individuais ou controladores de disco.

O valor para affinity I/O mask especifica que CPUs em um computador multiprocessador são elegíveis para processar operações E/S de disco do SQL Server. A máscara é um bitmap no qual o bit mais à direita especifica a CPU de ordem mais inferior (0), o bit a sua esquerda imediata especifica a CPU de ordem inferior mais próxima (1) e assim por diante. Para configurar mais de 32 processadores, defina a affinity I/O mask e a affinity64 I/O mask.

Os valores para affinity I/O mask são como se segue:

  • Uma affinity I/O mask de 1 byte abrange até 8 CPUs em um computador multiprocessador.

  • Uma affinity I/O mask de 2 bytes abrange até 16 CPUs em um computador multiprocessador.

  • Uma affinity I/O mask de 3 bytes abrange até 24 CPUs em um computador multiprocessador.

  • Uma affinity I/O mask de 4 bytes abrange até 32 CPUs em um computador multiprocessador.

  • Para cobrir mais de 32 CPUs, configure uma affinity I/O mask de 4 bytes para as primeiras 32 CPUs e até uma affinity64 I/O mask de quatro bytes para as CPUs restantes.

1 bit no padrão de Afinidade E/S especifica que a CPU correspondente é elegível para executar SQL Server operações E/S de disco; um 0 bit especifica que nenhuma operação E/S de disco SQL Server deveria ser programada para a CPU correspondente. Quando todos os bits são definidos para zerar ou a affinity I/O mask não é especificada, o disco E/S de SQL Server é programado para quaisquer das CPUs elegíveis para processar threads de SQL Server.

Como definir a opção SQL Serveraffinity I/O mask é uma operação especializada, só deveria ser usada quando necessário. Na maioria dos casos, a afinidade padrão de Windows 2000 ou Windows Server 2003 provê o melhor desempenho.

Ao especificar a opção affinity I/O mask, você deve usá-la com a opção de configuração affinity mask. Não habilite a mesma CPU na alternância affinity I/O mask e na opção affinity mask. Os bits que correspondem a cada CPU deveriam estar em um dos três estados seguintes:

  • 0 na opção affinity I/O mask e opção affinity mask.

  • 1 na opção affinity I/O mask e 0 na opção affinity mask.

  • 0 na opção affinity I/O mask e 1 na opção affinity mask.

A opção affinity I/O mask é uma opção avançada. Se você estiver usando o procedimento armazenado no sistema sp_configure para alterar a configuração, é possível alterar affinity I/O mask apenas quando show advanced options estiver definida como 1. Em SQL Server, reconfigurar a opção affinity I/O mask requer uma reinicialização da instância SQL Server.

Observação sobre cuidadosCuidado

Não configure afinidade de CPU no sistema operacional Windows e também configure a máscara de afinidade em SQL Server. Essas definições estão tentando alcançar o mesmo resultado e se as configurações forem inconsistentes, você poderá ter resultados imprevisíveis. A afinidade da CPU SQL Server é mais bem configurada usando a opção sp_configure em SQL Server.