적용 대상
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

증상

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_CACHECMED_HASH_SET 이름이 각각 LOCK_RW_SECURITY_CACHELOCK_RW_CMED_HASH_SET 변경됩니다. CU2가 적용된 후 값은 다음과 같이 표시됩니다.업데이트

SQL Server 대한 각각의 새로운 누적 업데이트에는 모든 핫픽스 및 이전 누적 업데이트에 포함된 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.

SQL Server 2017의 최신 누적 업데이트

SQL Server 2016의 최신 누적 업데이트

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.