Resumo
Ambientes que executam um grande volume de transações de banco de dados em uma instância Microsoft SQL Server 2019 podem produzir uma contenção de spinlock severa. A contenção geralmente é observada em sistemas high-end que usam processadores de geração mais recentes.
As seguintes condições podem ser observadas em relação à contenção de spinlock severa:
-
Comumente observado em hardware moderno, particularmente processadores Intel Skylake. Ele também pode ser observado em outros processadores modernos.
-
Normalmente observado em sistemas que têm muitos processadores.
-
Ambientes podem ter usuários mais simultâneos, como cargas de trabalho de missão críticas e altamente transacionais.
-
Os sintomas incluem o uso inesperadamente alto da CPU e muitos eventos de giro e backoff para um tipo de spinlock específico, e um número maior de giros por colisão.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Resolução
O aprimoramento do spinlock foi disponibilizado pela primeira vez na Atualização Cumulativa 2 para SQL Server 2019. Foram feitas melhorias adicionais nas seguintes atualizações cumulativas para SQL Server:
Recomendamos que você aplique a atualização cumulativa mais recente nesta lista para resolver vários problemas de contenção de spinlock.
Importante: Para poder corrigir o problema do spinlock, o sinalizador de rastreamento 8101 deve ser habilitado depois de aplicar uma das CUs desta lista.
Sobre atualizações cumulativas para SQL Server
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as últimas atualizações cumulativas para SQL Server:
Solução de problemas
Para solucionar problemas de contenção de spinlock, consulte os seguintes artigos para obter informações detalhadas sobre como identificar e resolver problemas relacionados à alta contenção de CPU e spinlock em aplicativos SQL Server:
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.
sys.dm_os_spinlock_stats (Transact-SQL) | Microsoft Learn
DBCC TRACEON – Sinalizadores de rastreamento (Transact-SQL)
Aviso de isenção de responsabilidade para informações de terceiros
Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.