MSSQLSERVER_17883
Aplica-se a:SQL Server
Detalhes
Atributo | Valor |
---|---|
Nome do Produto | SQL Server |
ID do evento | 17883 |
Origem do Evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbólico | SRV_SCHEDULER_NONYIELDING |
Texto da mensagem | Processo %ld:%ld:%ld (0x%lx) Trabalhador 0x%p parece não estar produzindo no Agendador %ld. Hora de criação do thread: % I64d. Thread aprox. de uso da CPU: kernel %I64d ms, usuário %I64d ms. Utilização do processo %d%%. Sistema inativo %d%%. Intervalo: %I64d ms. |
Explicação
Indica que há um possível problema com um thread que não está cedendo em um agendador. Esse erro pode ser causado por uma condição do sistema operacional, um problema de ambiente ou um problema de software em SQL Server ou se SQL Server não estiver recebendo ciclos suficientes para executar. Esse erro poderá desaparecer se o thread eventualmente produzir.
Ação do usuário
Se você examinar as informações da mensagem de erro, verá que certos comportamentos surgem. Por exemplo:
Se o tempo do modo de usuário subir rapidamente e continuar a fazê-lo, a causa provável será um loop não associado no mecanismo de SQL Server que não está sendo gerado corretamente.
Se o tempo do modo kernel subir rapidamente, o thread passará a maior parte do tempo no sistema operacional e exigirá a depuração de kernel para determinar a causa raiz desse comportamento.
Se o tempo do kernel e a hora do usuário não estiverem aumentando rapidamente, o thread provavelmente estará aguardando uma chamada à API, como
WaitForSingleObject
,Sleep
WriteFile
, ouReadFile
para retornar. Ou o thread pode não estar sendo agendado pelo sistema operacional. As condições de parada de API geralmente exigem a depuração do modo kernel para determinar a causa raiz.Se
System Idle %
for baixo eProcess Utilization %
for baixo, SQL Server poderá não estar recebendo ciclos de CPU suficientes. Verifique a utilização da CPU de outros aplicativos no sistema. Além disso, verifique se a paginação está acontecendo no sistema. A execuçãoSELECT * FROM sys.dm_os_ring_buffers
também pode fornecer mais detalhes.Se
kernel + user
os tempos forem baixos, masProcess Utilization %
for alto, a condição de erro poderá indicar que threads preemptivos estão consumindo toda a CPU (por exemplo, coleta de lixo).
Combinar informações com a utilização do sistema e o tempo ocioso pode fornecer insights sobre a natureza do problema.
Para entender a lógica de detecção e os motivos comuns que geram essa condição de erro, consulte Como diagnosticar e corrigir erros 17883, 17884, 17887 e 17888.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de