KB3195888 – LØSNING: Højt CPU-forbrug giver problemer med ydeevnen i SQL Server 2016 og 2017

Gælder for
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

Symptomer

Når du bruger enten en ny forekomst af Microsoft SQL Server 2016 (eller 2017) eller en forekomst af SQL Server 2016 (eller 2017), der er opgraderet fra en tidligere version af SQL Server, oplever du problemer med ydeevnen på grund af høj CPU-brug. Hvis du forespørger i tabellen sys.dm_os_spinlock_stats , bemærker du desuden en høj værdi i kolonnen spin for rækkerne SECURITY_CACHE (sikkerhedscache) og CMED_HASH_SET (metadatacache) (sammenlignet med andre rækker i tabellen). Du bemærker f.eks. følgende værdier.

Spinlock-statistik med høje SECURITY_CACHE- og CMED_HASH_SET-værdier

Årsag

Dette problem opstår på grund af høj rotationslås i et meget sideløbende system. I disse operativsystemer konkurrerer flere CPU-tråde om ressourcer og drejer rundt i et længere interval, mens de med jævne mellemrum kører i en løkke for at afgøre, om ressourcen er tilgængelig i stedet for straks at give efter. Når flere CPU-tråde bliver ved med at dreje (i en while-løkke ) for en ressource i stedet for at give efter, forårsager dette høj CPU-brug og problemer med ydeevnen.

Løsning

Dette problem blev rettet i følgende kumulative opdateringer til SQL Server:

Bemærk Når du anvender SQL Server 2016 Cumulative Update 2 (CU2), ændres navnene SECURITY_CACHE og CMED_HASH_SET til henholdsvis LOCK_RW_SECURITY_CACHE og LOCK_RW_CMED_HASH_SET. Når KU2 anvendes, vises værdierne som følger:

Spinlock-statistik efter opdateringen med omdøbte sikkerheds- og metadatacacherækker

Om kumulative opdateringer til SQL Server

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

Seneste kumulative opdatering til SQL Server 2017

Seneste kumulative opdatering til SQL Server 2016

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Referencer

Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.

Hvidbogen Diagnosticering and Resolving Spinlock Contention on SQL Server diskuterer problemer og løsninger, der er relateret til spinlock-konflikter i detaljer.