KB3195888 - FIX: hoog CPU-gebruik veroorzaakt prestatieproblemen in SQL Server 2016 en 2017

Van toepassing op
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2017 on Linux

Symptomen

Wanneer u een nieuw exemplaar van Microsoft SQL Server 2016 (of 2017) gebruikt of een exemplaar van SQL Server 2016 (of 2017) dat is bijgewerkt vanaf een eerdere versie van SQL Server, ondervindt u prestatieproblemen vanwege een hoog CPU-gebruik. Als u bovendien een query uitvoert op de sys.dm_os_spinlock_stats tabel, ziet u een hoge waarde in de kolommen met draaiende gegevens voor de rijen SECURITY_CACHE (beveiligingscache) en CMED_HASH_SET (metagegevenscache) (vergeleken met de andere rijen in de tabel). U ziet bijvoorbeeld de volgende waarden.

Spinlock-statistieken met hoge SECURITY_CACHE- en CMED_HASH_SET-waarden

Oorzaak

Dit probleem treedt op vanwege een hoge spin lock-conflict in een systeem dat veel gelijktijdig gebruikmaakt. In deze besturingssystemen strijden meerdere CPU-threads om bronnen en draaien ze voor een langere interval, terwijl ze periodiek in een lus worden uitgevoerd om te bepalen of de bron beschikbaar is in plaats van onmiddellijk op te geven. Wanneer meerdere CPU-threads blijven draaien (in een tijdje lus) voor een bron in plaats van toe te geven, veroorzaakt dit een hoog CPU-gebruik en prestatieproblemen.

Oplossing

Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:

Notitie Nadat u SQL Server 2016 cumulatieve update 2 (CU2) hebt toegepast, worden de namen SECURITY_CACHE en CMED_HASH_SET gewijzigd in respectievelijk LOCK_RW_SECURITY_CACHE en LOCK_RW_CMED_HASH_SET. Nadat CU2 is toegepast, worden de waarden als volgt weergegeven.

Spinlock-statistieken na de update met hernoemde cacherijen voor beveiliging en metagegevens

Informatie over cumulatieve updates voor SQL Server

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

Meest recente cumulatieve update voor SQL Server 2017

Meest recente cumulatieve update voor SQL Server 2016

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.

Meer informatie

Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.

In het technische document Spinlockconflicten op SQL Server diagnosticeren en oplossen worden problemen en oplossingen met betrekking tot spinlockconflicten in detail besproken.