
2개의 Xeon(R) Gold 6246R(32개의 물리적 코어, 64개의 로그, HT 포함)이 포함된 HPE DL380 G10 서버의 BIOS에서 다음 설정을 사용합니다.
시스템 구성 > BIOS/플랫폼 구성(RBSU) > 성능 옵션 > 고급 성능 조정 옵션 > NUMA 그룹 크기 최적화
다음 두 가지 옵션 중에서 선택할 수 있습니다.
- 클러스터링됨— NUMA 경계에 따라 그룹을 최적화하여 더 나은 성능을 제공합니다.
- 평평한- 여러 그룹에 걸쳐 있는 프로세서를 활용하도록 최적화되지 않은 응용 프로그램이 보다 논리적인 프로세서를 활용할 수 있도록 합니다.
"클러스터형" 옵션을 사용하면 Windows는 하나의 NUMA 노드와 2개의 프로세서 그룹(각각 32개의 코어)만 보고하도록 합니다. 반대쪽의 "플랫" 옵션에는 2개의 NUMA 노드와 64개의 논리 코어가 있는 1개의 프로세서 그룹만 표시됩니다.
물론 저는 이미 NUMA 및 프로세서 그룹에 대해 많이 알고 있으므로 제 사용 사례에 가장 적합한 설정에 대한 권장 사항을 묻고 있는 것은 아닙니다. 대신 질문은 다음과 같습니다. NUMA 노드가 하나만 있을 때 Windows가 2개의 프로세서 그룹을 사용하기로 결정하고 그 반대의 경우도 마찬가지인 이유는 무엇입니까? 또한 Windows(Server 2019)가 64개의 코어를 2개의 그룹으로 분할한다는 문서를 찾지 못했습니다. 이것이 예상되는 동작입니까?
답변1
당신이 찾은 기사는 2008년의 것입니다. 당시 Windows는 64개 이상의 프로세서를 탑재한 NUMA 컴퓨터에 직면했지만 프로세서 그룹의 구현은 64개로 제한되었습니다. 그런 다음 솔루션은 이러한 그룹을 두 개 이상 자동으로 생성하는 것이었습니다. 각각 64개 이하의 프로세서.
보다 유연한 솔루션이 2014년 말에 도입되었습니다. 제가 찾은 가장 초기의 참고 자료는 다음과 같습니다. HP 권고 사항 HP Gen9 서버 관련 및 2015년 4월 24일 기준:
Gen9 서버용 시스템 ROM의 개정판 1.30(2014년 12월 24일) 이상 버전에서는새로운 ROM 기반 설정 유틸리티, "NUMA 그룹 크기 최적화"사용자가 운영 체제에 대한 보고 프로세서의 동작을 변경할 수 있도록 하는 기능이 추가되었습니다. 이 옵션을 사용하면 논리 프로세서가 64개 이하("플랫")인 경우 OS가 모든 논리 프로세서를 단일 그룹에 넣을 수 있습니다.
클러스터형 옵션은 각 CPU의 코어에 대해 하나의 프로세서 그룹을 생성합니다. Flat 옵션은 응용 프로그램이 모든 컴퓨터 코어를 사용할 수 있도록 하기 위한 것입니다. Windows에서는 기본적으로 응용 프로그램이 단일 그룹으로 제한되므로 해당 그룹 하나만 보고 사용할 수 있기 때문입니다.
귀하의 질문에 관하여:
NUMA 노드가 하나만 있고 그 반대의 경우에도 Windows가 2개의 프로세서 그룹을 사용하기로 결정하는 것이 왜 의미가 있습니까?
이는 클러스터링 옵션에 의해 결정됩니다. 이는 애플리케이션과 모든 프로세스 및 스레드가 성능을 위해 근처 메모리에서 모두 실행하는 데 적합합니다.
애플리케이션에 32개 이상의 코어가 필요한 경우 플랫 옵션을 사용하여 모든 코어를 불활성화해야 합니다.
Windows(Server 2019)가 64개의 코어를 2개의 그룹으로 분할한다는 문서를 찾지 못했습니다. 이것이 예상된 동작입니까?
예, 이는 예상되는 동작입니다. 잘 문서화되어 있지는 않지만 이 동작에 대한 참조가 있습니다. 예를 들어 교환 성능:HP NUMA BIOS 설정.