모든 CPU 코어 / 스레드를 사용하지 않는 SQL Server


15

SQL Server 하드웨어를 업그레이드 한 후 Windows 작업 관리자에서 SQL 인스턴스가 사용 가능한 스레드의 절반 만 사용하고 있음을 알았습니다.

작업 관리자.

서버에는 다음과 같은 하드웨어 및 소프트웨어가 있습니다.

  • Windows 2008 R2 Enterprise 64 비트 SP1
  • Intel Xeon E7-4870-4 프로세서 (40 코어, 80 스레드)
  • Microsoft SQL Server 2012 Enterprise Edition (64 비트)

러닝 select cpu_count from sys.dm_os_sys_info은 40을 반환합니다.

OS는 모든 80 스레드를 봅니다.

서버 처리 능력의 절반 만 사용되는 이유는 무엇입니까?

두 서버에 동일한 하드웨어 및 소프트웨어가 있으며 둘 다 동일한 동작을 나타냅니다.

답변:


23

SQL Server 오류 로그에서 이유를 알려줍니다. 고객 시스템 에서이 사실을 발견했습니다 (실제로 Google 주스 메시지를 붙여 넣는 중).

SQL Server는 소켓 당 8 개의 코어와 소켓 당 16 개의 논리 프로세서, 총 64 개의 논리 프로세서를 가진 4 개의 소켓을 감지했습니다. SQL Server 라이센스 기반의 40 개의 논리 프로세서 사용 이것은 정보 메시지입니다. 사용자 조치가 필요하지 않습니다.

여기 에서 가능한 설명을 얻었습니다 .

기존 SQL EE Server 라이센스에 대해 Software Assurance를 보유한 고객 (또는 계약 기간 동안 현재 Enterprise Agreement에 따라 액세스 할 수있는 고객)의 경우 Enterprise Edition 버전이 만들어져 SQL Server 2012로 업그레이드 할 수 있습니다.이 버전에는 인스턴스를 20 개의 프로세서 코어 만 사용 (하이퍼 스레딩이있는 40 개의 CPU 스레드).

요약 : 오류 로그에서 에디션은 Enterprise Edition또는 로보고됩니다 Enterprise Edition: Core-based Licensing. 앞에서 언급 한 고객 시스템의 경우와 같이 전자가 표시되면 사용 가능한 모든 코어를 사용하려면 코어 기반 라이센스를 얻어야합니다.

그렇지 않은 경우 모든 코어에 대해 이미 라이센스가 부여 된 경우 선호도 마스크 설정, 특히 설정되어 있고 기본 하드웨어가 업그레이드 된 경우 선호도 마스크 설정을 확인하십시오.


비슷한 문제가있었습니다. 1 개의 소켓과 32 개의 코어로 VM을 구축합니다. Sql은 8 개의 CPU 만 인식합니다. 우리는 8 소켓과 4 코어로 전환하여 문제가 해결되었습니다. 우리는 Windows 2008r2에서 Enterprise Editon sql 2008r2를 실행하는 곳입니다.
user3799984

표준 버전과 동일한 문제가있었습니다. 우리는 8 개의 소켓을 사용했고 나머지는 사용하지 않을 것입니다. VM을 변경하고 4 개의 소켓에 2 개의 코어를 구성하기 만하면됩니다.
Nicolas de Fontenay

7

SQL Server가 처음 시작된 시점부터 ERRORLOG를 확인하십시오. 사용중인 CPU 수와 그 이유를 알려줍니다. ERRORLOG 파일을 어딘가에 게시하면 무슨 일이 일어나고 있는지 알 수 있습니다.


3

나는 Ajmer Dhariwal의 다른 게시물 에서 이것을 보았다 .

Enterprise 에디션이있는 경우에도 적용되는 라이센스 모델이 Server + CAL (Client Access License) 기반 인 경우 서버는 인스턴스 당 20 개의 물리적 코어로 제한됩니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.