Zusammenfassung
Umgebungen, die eine große Menge von Datenbanktransaktionen auf einer Microsoft SQL Server 2019-Instanz ausführen, können zu schwerwiegenden Spinlockkonflikten führen. Die Konflikte werden im Allgemeinen auf High-End-Systemen beobachtet, die Prozessoren der neueren Generation verwenden.
Die folgenden Bedingungen können bei schwerwiegenden Spinlockkonflikten beobachtet werden:
-
Häufig beobachtet auf moderner Hardware, insbesondere Intel Skylake-Prozessoren. Dies kann auch auf anderen modernen Prozessoren beobachtet werden.
-
In der Regel auf Systemen mit vielen Prozessoren beobachtet.
-
Umgebungen können mehr gleichzeitige Benutzer haben, z. B. unternehmenskritische, stark transaktionale Workloads.
-
Zu den Symptomen gehören unerwartet hohe CPU-Auslastung und viele Spins- und Backoffereignisse für einen bestimmten Spinlocktyp sowie eine höhere Anzahl von Spins pro Kollision.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Lösung
Die Spinlockverbesserung wurde erstmals im kumulativen Update 2 für SQL Server 2019 verfügbar gemacht. In den folgenden kumulativen Updates für SQL Server wurden weitere Verbesserungen vorgenommen:
Es wird empfohlen, das neueste kumulative Update in dieser Liste anzuwenden, um verschiedene Probleme mit Spinlockkonflikten zu beheben.
Wichtig: Um das Spinlockproblem beheben zu können, muss das Ablaufverfolgungsflag 8101 aktiviert sein, nachdem Sie eine der CUs aus dieser Liste angewendet haben.
Informationen zu kumulativen Updates für SQL Server
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problembehandlung
Ausführliche Informationen zum Identifizieren und Beheben von Problemen im Zusammenhang mit hohen CPU- und Spinlockkonflikten in SQL Server Anwendungen finden Sie in den folgenden Artikeln:
Informationsquellen
Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.
sys.dm_os_spinlock_stats (Transact-SQL) | Microsoft Learn
DBCC TRACEON – Ablaufverfolgungsflags (Transact-SQL)
Informationen zum Haftungsausschluss von Drittanbietern
Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft schließt jede konkludente oder sonstige Gewährleistung bezüglich der Leistung oder Zuverlässigkeit dieser Produkte aus.