최상의 성능을 위한 MAXDOP 설정 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

최상의 성능을 위한 MAXDOP 설정

최대 병렬 처리(MAXDOP)는 여러 CPU에서 SQL Server를 실행하기 위한 서버 구성 옵션입니다. 이는 병렬 계획 실행에서 단일 명령문을 실행하는 데 사용되는 프로세서 수를 제어합니다. 기본값은 0이며, 이를 통해 SQL Server는 사용 가능한 모든 프로세서를 사용할 수 있습니다. 이는 성능에 영향을 줄 수 있으며 대부분의 사용 사례에는 적합하지 않습니다.

SQL Server의 MAXDOP 값을 구성할 때는 다음 지침을 따르십시오.

NUMA 노드 논리적 프로세서 MAXDOP 값
단일 ≤ 8 4개, 2개 또는 코어 수(1개 또는 2개 코어용)
단일 > 8 8, 4 또는 2
다양함 ≤ 16 8, 4 또는 2
다양함 > 16 16, 8, 4 또는 2
참고

일반적으로 MAXDOP를 2, 4 또는 8로 설정하면 대부분의 사용 사례에서 최상의 결과를 얻을 수 있습니다. 워크로드를 테스트하고 CXPACKET 같은 병렬 처리 관련 대기 유형이 있는지 모니터링하는 것이 좋습니다.

다음 쿼리를 사용하여 SQL Server 2016 및 이후 버전의 현재 NUMA 구성을 수집할 수 있습니다.

select @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), cpu_count, hyperthread_ratio, softnuma_configuration, softnuma_configuration_desc, socket_count, numa_node_count from sys.dm_os_sys_info

여기서 각 항목은 다음과 같습니다.

  • cpu_count는 시스템에 있는 논리적 CPU의 수를 나타냅니다.

  • hyperthread_ratio는 물리적 프로세서 1개가 노출하는 코어 수의 비율입니다.

  • softnuma_configuration0, 1 또는 2:

    • 0 (OFF): default

    • 1 (automated): 소프트 NUMA

    • 2 (manual): 소프트 NUMA

  • softnuma_configuration_descOFF, ON 또는 MANUAL:

    • OFF는 소프트 NUMA 기능이 꺼져 있음을 나타냅니다.

    • ON은 SQL Server에서 NUMA 노드 크기를 자동으로 결정함을 나타냅니다.

    • MANUAL은 소프트 NUMA가 수동으로 구성되었음을 나타냅니다.

  • socket_count는 프로세서 소켓 수입니다.

  • numa_node_count는 시스템에서 사용 가능한 NUMA 노드 수입니다.

현재 MAXDOP 값을 확인하려면 다음을 사용하십시오.

$ sp_configure 'max_degree_of_parallelism'

사용자 이름에 대한 자세한 정보는 Microsoft SQL 설명서를 참조하십시오.