Share via


소프트 NUMA를 사용하도록 SQL Server 구성(SQL Server)

NUMA(비균일 메모리 액세스)가 검색되고 자동으로 사용됩니다. 대형 SMB 컴퓨터의 NUMA를 시뮬레이트하려는 경우 또는 효율 향상을 위해 NUMA 컴퓨터를 세분화하려는 경우 소프트웨어 NUMA(소프트 NUMA)를 사용할 수 있습니다. 소프트 NUMA를 사용하도록 SQL Server를 구성하려면 레지스트리를 편집하여 노드 구성 선호도 마스크를 추가해야 합니다. 소프트 NUMA 마스크는 이진, DWORD(16진수 또는 십진수) 또는 QWORD(16진수 또는 십진수) 레지스트리 항목으로 정의할 수 있습니다. 첫 32개 CPU 이상을 구성하려면 QWORD 또는 BINARY 레지스트리 값을 사용합니다. QWORD 값은 SQL Server 2012 이상 버전에서만 사용할 수 있습니다. 소프트 NUMA를 구성하려면 데이터베이스 엔진을 다시 시작해야 합니다.

팁

CPU 번호는 0부터 시작합니다.

레지스트리를 올바르게 편집하지 않으면 시스템을 심각하게 손상시킬 수 있습니다. 따라서 레지스트리를 변경하기 전에 컴퓨터의 중요한 데이터는 백업해 두는 것이 좋습니다.

다음 예를 살펴 보십시오. 8개의 CPU가 있고 하드웨어 NUMA가 없는 컴퓨터가 있습니다. 3개의 소프트 NUMA 노드가 구성되어 있습니다. 데이터베이스 엔진 인스턴스 A는 CPU를 0부터 3까지 사용하도록 구성됩니다. 데이터베이스 엔진의 두 번째 인스턴스가 설치되고 CPU 4에서 7까지 사용하도록 구성되었습니다. 이 예는 시각적으로 다음과 같이 나타낼 수 있습니다.

CPUs          0  1  2  3  4  5  6  7

Soft-NUMA   <-N0--><-N1-><----N2---->

SQL Server  <instance A ><instance B>

이제 I/O가 많은 인스턴스 A에는 I/O 스레드와 지연 기록기 스레드가 각각 한 개씩 있는 반면, 프로세서를 많이 사용하는 작업을 수행하는 인스턴스 B에는 I/O 스레드와 지연 기록기 스레드가 각각 하나뿐입니다. 두 인스턴스에 서로 다른 양의 메모리를 할당할 수 있지만 하드웨어 NUMA와 달리 두 인스턴스는 모두 동일한 운영 체제 메모리 블록에서 메모리를 받으며 메모리에서 프로세서로의 선호도가 없습니다.

지연 기록기 스레드는 물리적 NUMA 메모리 노드의 SQL OS 보기와 연결되어 있습니다. 따라서, 물리적 NUMA 노드로 표시되는 하드웨어는 생성되는 지연 기록기 스레드의 수와 같습니다. 자세한 내용은 작동 방법: 소프트 NUMA, I/O 완료 스레드, 지연 기록기 노동자와 메모리 노드.

[!참고]

Soft-NUMA 레지스트리 키는 SQL Server 인스턴스를 업그레이드할 때 복사되지 않습니다.

CPU 선호도 마스크 설정

  1. 인스턴스 A에서 CPU 선호도 마스크를 설정하는 다음 문을 실행하여 CPU 0, 1, 2, 3을 사용하도록 구성합니다.

    ALTER SERVER CONFIGURATION 
    SET PROCESS AFFINITY CPU=0 TO 3;
    
  2. 인스턴스 B에서 CPU 선호도 마스크를 설정하는 다음 문을 실행하여 CPU 4, 5, 6, 7을 사용하도록 구성합니다.

    ALTER SERVER CONFIGURATION 
    SET PROCESS AFFINITY CPU=4 TO 7;
    

CPU에 소프트 NUMA 노드 매핑

  • 레지스트리 편집기 프로그램(regedit.exe)에서 다음 레지스트리 키를 추가하여 소프트 NUMA 노드 0을 CPU 0과 1에, 소프트 NUMA 노드 1을 CPU 2와 3에, 소프트 NUMA 노드 2를 CPU 4, 5, 6, 7에 각각 매핑합니다.

    SQL Server 2012

    유형

    값 이름

    값 데이터

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\NodeConfiguration\Node0

    DWORD

    CPUMask

    0x03

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\NodeConfiguration\Node0

    DWORD

    그룹

    0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\NodeConfiguration\Node1

    DWORD

    CPUMask

    0x0c

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\NodeConfiguration\Node1

    DWORD

    그룹

    0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\NodeConfiguration\Node2

    DWORD

    CPUMask

    0xf0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\NodeConfiguration\Node2

    DWORD

    그룹

    0

    팁

    CPU 60 ~ 63을 지정하려면 QWORD 값 F000000000000000 또는 BINARY 값 1111000000000000000000000000000000000000000000000000000000000000을 사용합니다.

    SQL Server 2008 R2

    유형

    값 이름

    값 데이터

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0

    DWORD

    CPUMask

    0x03

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0

    DWORD

    그룹

    0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1

    DWORD

    CPUMask

    0x0c

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1

    DWORD

    그룹

    0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2

    DWORD

    CPUMask

    0xf0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2

    DWORD

    그룹

    0

    SQL Server 2008

    유형

    값 이름

    값 데이터

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node0

    DWORD

    CPUMask

    0x03

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node1

    DWORD

    CPUMask

    0x0c

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\NodeConfiguration\Node2

    DWORD

    CPUMask

    0xf0

    SQL Server 2005

    유형

    값 이름

    값 데이터

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node0

    DWORD

    CPUMask

    0x03

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node1

    DWORD

    CPUMask

    0x0c

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node2

    DWORD

    CPUMask

    0xf0

참고 항목

참조

ALTER SERVER CONFIGURATION(Transact-SQL)

개념

NUMA 노드에 TCP/IP 포트 매핑

affinity mask 서버 구성 옵션