MSSQLSERVER_17883
S’applique à :SQL Server
Détails
Attribut | Valeur |
---|---|
Nom du produit | SQL Server |
ID de l’événement | 17883 |
Source de l’événement | MSSQLSERVER |
Composant | SQLEngine |
Nom symbolique | SRV_SCHEDULER_NONYIELDING |
Texte du message | Le processus %ld:%ld:%ld (0x%lx) travail 0x%p semble être improductif dans le Planificateur %ld. Heure de création du thread : %I64d. Utilisation approximative de l'UC pour ce thread : noyau %I64d ms, utilisateur %I64d ms. Utilisation du processus %d%%. Système inactif %d%%. Intervalle : %I64d ms. |
Explication
Indique qu’il existe un problème possible avec un thread qui ne cède pas sur un planificateur. Cette erreur peut être provoquée par une condition du système d’exploitation, un problème d’environnement ou un problème logiciel dans SQL Server, ou si SQL Server n’obtient pas suffisamment de cycles pour s’exécuter. Cette erreur peut disparaître si le thread finit par se produire.
Action requise
Si vous examinez les informations du message d’erreur, vous voyez que certains comportements apparaissent. Par exemple :
Si le temps de mode utilisateur augmente rapidement et continue de le faire, la cause probable est une boucle non délimitée dans le moteur SQL Server qui ne fonctionne pas correctement.
Si le temps en mode noyau monte rapidement, le thread passe la plupart de son temps dans le système d’exploitation et nécessite un débogage du noyau pour déterminer la cause racine de ce comportement.
Si le temps du noyau et le temps utilisateur n’augmentent pas rapidement, le thread attend probablement qu’un appel d’API tel que
WaitForSingleObject
,Sleep
,WriteFile
ouReadFile
soit retourné. Ou bien, le thread n’est peut-être pas planifié par le système d’exploitation. Les conditions de blocage de l’API nécessitent généralement un débogage en mode noyau pour déterminer leur cause racine.Si
System Idle %
est faible etProcess Utilization %
faible, SQL Server peut ne pas obtenir suffisamment de cycles d’UC. Vérifiez l’utilisation du processeur d’autres applications sur le système. Vérifiez également si la pagination est en cours dans le système. L’exécutionSELECT * FROM sys.dm_os_ring_buffers
peut également fournir plus de détails.Si
kernel + user
les temps sont faibles maisProcess Utilization %
sont élevés, la condition d’erreur peut indiquer que le ou les threads préemptifs consomment tout le processeur (par exemple, le garbage collection).
La combinaison d’informations avec l’utilisation du système et le temps d’inactivité peut fournir des informations sur la nature du problème.
Pour comprendre la logique de détection et les raisons courantes qui génèrent cette condition d’erreur, consultez Comment diagnostiquer et corriger les erreurs 17883, 17884, 17887 et 17888.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour