증상
Microsoft SQL Server 2016(또는 2017)의 새 인스턴스 또는 이전 버전의 SQL Server 업그레이드된 SQL Server 2016(또는 2017)의 인스턴스를 사용하는 경우 높은 CPU 사용량으로 인해 성능 문제가 발생합니다. 또한 sys.dm_os_spinlock_stats 테이블을 쿼리하는 경우 테이블의 다른 행에 비해 SECURITY_CACHE(보안 캐시) 및 CMED_HASH_SET(메타데이터 캐시) 행의 스핀 열에 높은 값이 표시됩니다. 예를 들어 다음 값이 표시됩니다.
원인
이 문제는 동시 시스템에서 스핀 잠금 경합이 높기 때문에 발생합니다. 이러한 운영 체제에서는 여러 CPU 스레드가 리소스에 대해 경쟁하고 연장된 간격 동안 회전하는 동안 루프에서 주기적으로 실행하여 리소스를 즉시 산출하는 대신 사용할 수 있는지 여부를 확인합니다. 여러 CPU 스레드가 출력하는 대신 리소스에 대해 계속 회전하는 경우( 잠시 후) 높은 CPU 사용량 및 성능 문제가 발생합니다.
해결 방법
이 문제는 SQL Server 대한 다음 누적 업데이트에서 해결되었습니다.
참고 SQL Server 2016 CU2(누적 업데이트 2)를 적용하면 SECURITY_CACHE 및 CMED_HASH_SET 이름이 각각 LOCK_RW_SECURITY_CACHE 및 LOCK_RW_CMED_HASH_SET 변경됩니다. CU2가 적용된 후 값은 다음과 같이 표시됩니다.
SQL Server 대한 각각의 새로운 누적 업데이트에는 모든 핫픽스 및 이전 누적 업데이트에 포함된 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참고 자료
Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어 에 대해 알아봅니다.SQL Server 스핀 잠금 경합 진단 및 해결 백서에서는 스핀 잠금 경합과 관련된 문제 및 해결 방법을 자세히 설명합니다.