MSSQLSERVER_17883
Se aplica a: SQL Server
Detalles
Attribute | Valor |
---|---|
Nombre del producto | SQL Server |
Id. de evento | 17883 |
Origen de eventos | MSSQLSERVER |
Componente | SQLEngine |
Nombre simbólico | SRV_SCHEDULER_NONYIELDING |
Texto del mensaje | Parece que el proceso %ld:%ld:%ld (0x%lx) Trabajo 0x%p no rinde en el programador %ld. Thread creation time: %I64d. CPU usada por el subproceso (aprox.): kernel %I64d ms, usuario %I64d ms. Uso del proceso %d%%. Sistema inactivo %d%%. Intervalo: %I64d ms. |
Explicación
Indica que hay un posible problema con un subproceso que no se produce en un programador. Este error puede deberse a una condición del sistema operativo, un problema de entorno o un problema de software en SQL Server o si SQL Server no obtiene suficientes ciclos para ejecutarse. Este error puede desaparecer si el subproceso finalmente produce.
Acción del usuario
Si observa la información del mensaje de error, verá que surgen ciertos comportamientos. Por ejemplo:
Si el tiempo del modo de usuario sube rápidamente y continúa haciéndolo, la causa probable es un bucle sin enlazar en el motor de SQL Server que no produce correctamente.
Si el tiempo del modo kernel sube rápidamente, el subproceso pasa la mayor parte de su tiempo en el sistema operativo y requiere la depuración del kernel para determinar la causa principal de este comportamiento.
Si el tiempo del kernel y el tiempo del usuario no aumentan rápidamente, es probable que el subproceso espere a que se devuelva una llamada API como
WaitForSingleObject
,Sleep
,WriteFile
oReadFile
. O bien, es posible que el sistema operativo no programe el subproceso. Por lo general, las condiciones de bloqueo de API requieren depuración en modo kernel para determinar su causa principal.Si
System Idle %
es bajo yProcess Utilization %
es bajo, es posible que SQL Server no obtenga suficientes ciclos de CPU. Compruebe el uso de cpu de otras aplicaciones en el sistema. Además, compruebe si la paginación está ocurriendo en el sistema. La ejecuciónSELECT * FROM sys.dm_os_ring_buffers
también puede proporcionar más detalles.Si
kernel + user
los tiempos son bajos peroProcess Utilization %
son altos, la condición de error podría indicar que los subprocesos preventivos consumen toda la CPU (por ejemplo, la recolección de elementos no utilizados).
La combinación de información con el uso del sistema y el tiempo de inactividad puede proporcionar información sobre la naturaleza del problema.
Para comprender la lógica de detección y las razones comunes que generan esta condición de error, consulte Cómo diagnosticar y corregir errores 17883, 17884, 17887 y 17888.