Configuração de servidor: affinity I/O mask
Aplica-se: SQL Server
Para realizar multitarefas, o , às vezes, movem threads de processos entre processadores diferentes. Embora seja eficiente de um ponto de vista de sistema operacional, essa atividade pode reduzir o desempenho do SQL Server sob cargas de sistema pesadas, à medida que cada cache do processador é recarregado repetidamente com os 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 dá suporte à afinidade de processador por meio de duas opções de máscara de afinidade: affinity mask
(também conhecida como máscara de afinidade de CPU) e affinity I/O mask
. Para obter mais informações sobre a opção affinity mask
, veja Configurar a opção de configuração do servidor affinity mask. O suporte para afinidade de CPU e E/S em servidores com 33 a 64 processadores exige o uso adicional das opções de configuração de servidor affinity64 mask e affinity64 I/O mask, respectivamente.
Observaçã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
vincula a E/S de disco do 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 de affinity I/O mask
especifica que CPUs em um computador com multiprocessador são qualificadas 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 affinity I/O mask
e affinity64 I/O mask
.
Os valores para affinity I/O mask
são os seguintes:
Bytes na máscara | Número de CPUs |
---|---|
1 byte | Até 8 CPUs |
2 bytes | Até 16 CPUs |
3 bytes | Até 24 CPUs |
4 bytes | Até 32 CPUs |
Para incluir mais de 32 CPUs, configure uma affinity I/O mask
de 4 bytes para as primeiras 32 CPUs e uma affinity64 I/O mask
de 4 bytes para as demais CPUs.
Um bit 1
no padrão de E/S de afinidade especifica que a CPU correspondente está qualificada para executar operações de E/S de disco do SQL Server. Um bit 0
especifica que nenhuma operação de E/S de disco do SQL Server deve ser agendada para a CPU correspondente. Quando todos os bits são definidos como 0
ou affinity I/O mask
não é especificada, a E/S de disco do SQL Server é agendada para qualquer uma das CPUs qualificadas para processar threads do SQL Server.
Como a configuração da opção affinity I/O mask
do SQL Server é uma operação especializada, use-a somente quando necessário. Na maioria dos casos, a afinidade padrão do Windows proporciona o melhor desempenho.
Ao especificar a opção affinity I/O mask
, você precisa usá-la com a opção de configuração affinity mask
. Não habilite a mesma CPU no parâmetro 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
tanto na opçãoaffinity I/O mask
quanto na opçãoaffinity mask
.1
na opçãoaffinity I/O mask
e0
na opçãoaffinity mask
.0
na opçãoaffinity I/O mask
e1
na opçãoaffinity mask
.
A opção affinity I/O mask
é uma opção avançada. Se você estiver usando o procedimento armazenado do sistema sp_configure
para alterar a configuração, é possível alterar affinity I/O mask
somente quando show advanced options
estiver definido como 1
. No SQL Server, reconfigurar a opção affinity I/O mask
exige uma reinicialização da instância do SQL Server.
Cuidado
Não configure a afinidade de CPU no sistema operacional Windows e também configure affinity mask
no SQL Server. Essas definições estão tentando alcançar o mesmo resultado e se as configurações forem inconsistentes, você pode ter resultados imprevisíveis. A melhor maneira de configurar a afinidade de CPU do SQL Server é com o procedimento armazenado do sistema sp_configure
no SQL Server.