SQL Server/SQL Server Tip

SQL Server NUMA 메모리 노드와 Operating System 접근

SungWookKang 2015. 7. 23. 09:42
반응형

SQL Server NUMA 메모리 노드와 Operating System 접근

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

NUMA 아키텍처는 각 프로세서 그룹에 자체 메모리가 있으며 자체 I/O 채널이 있는 경우도 있다. 그러나 각 CPU는 일관된 방법으로 다른 그룹과 연결된 메모리에 액세스 한다. 각 그룹을 NUMA노드라 한다.

 

NUMA에 대한 내용은 다음 아티클을 참고하여 이해를 할 수 있도록 한다.

 

이번 포스트는 CSS SQL Server Engineers 블로그에 게시된 내용으로 필자가 읽고 이해한 내용을 바탕으로 정리 하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. 자세한 내용은 원문을 참고 하길 바란다.

 

예를 들어 아래 표를 보면 노드00은 자체적으로 0단계이다. 노드03은 3단계이다. 노드 01은 2단계와 3단계이다.

 

Windows는 동일한 K-group(Processor Group)에 따라 노드를 모으려고 시도한다. 다음은 128 CPU, 8 Node시스템의 SQL Server 에러 로그에 기록된 내용이다.

 

노드 구성을 보면 노드 0,1,2,3은 K-Group = 0으로 정렬된다.

 

다음은 시스템 그룹 정렬에 따른 노드의 변화를 알 수 있다.

 

두 번째 구성 정렬(노드 0,1,4,5)은 최적화 되지 않은 구성이다. 이 시스템의 최적화된 근접은 첫 번째 레이아웃이다. NUMA기반 아키텍처를 이용한 노드 4,5,6,7은 별도의 블레이드에 있다. 이 경우 메모리 액세스는 로컬 액세스 느리다고 할 수 있다.

 

하드웨어 레벨에서 제공하는 SRAT 테이블, BIOS는 근접 정보가 포함되어 있다. 윈도우 메모리 관리자는 최적의 근접 응답을 결정하기 위해 메모리 액세스 검사를 수행하고 SRAT정보를 재정의 할 수 있다.

Windows서버는 레지스트리 키를 사용하여 CPU 종류, 메모리 레이아웃을 가지고 그룹 선호도 동작의 적절한 재정의를 할 수 있다.

 

하드웨어 제조 업체는 이러한 문제를 인식하고 특정 시스템의 튜닝 지침을 제공한다. 이러한 고급 구성은 최적의 성능을 얻기 위해 현재 SRAT 레이아웃을 서브-분할 하도록 추가 프로세서 그룹을 포함할 수 있다.

하드웨어 NUMA 환경에서 SQL Server 설치 시 제조사에 문의하여 최적의 근접 설정을 가져가길 추천한다.

 

 

[참고자료]

  • SQL Server NUMA Memory Node and the Operating System Proximity :

http://blogs.msdn.com/b/psssql/archive/2014/02/04/as-the-world-turns-sql-server-numa-memory-node-and-the-operating-system-proximity.aspx

 

 

 

2014-02-06 / 강성욱 / http://sqlmvp.kr

 

반응형