“80 cores 256gb memory”download.microsoft.com/download/a/c/f/acf9283a-f123-48a0... · 2018. 10....

46
“80 Cores 256GB Memory” 장비에 무슨 일이 있었나? 김정선 대표컨설턴트/이사 ㈜씨퀄로

Upload: others

Post on 21-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

“80 Cores 256GB Memory” 그 장비에 무슨 일이 있었나?

김정선

대표컨설턴트/이사

㈜씨퀄로

Page 2: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

발표자 소개

www.sqlroad.com

컨설턴트 SQL Server 컨설팅/연간기술지원/강의/SW개발

MVP Microsoft MVP (since April, 2002)

강사 뉴호라이즌 교육센터

부산글로벌 IT교육센터

집필/번역 SQL Server MVP Deep Dives Volume 2(원서)

SQL Server 초중급 관리자를 위한 DB튜닝(교재)

SQL Server 쿼리 튜닝 및 최적화 전문가(교재) Inside T-SQL Programming SQL Server 2005 개발자 가이드

SQL Server 2005 관리자 가이드

Microsoft SQL Sever 2005 포켓컨설턴트

S/W 개발 SQLBigEyes (왕눈이) System Suit

Page 3: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

꿈을 이루다

Page 4: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

상상을 이루다

감히 네가….

소중한 인연과

도움들…

Page 5: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

그들과 어깨를 나란히

Page 6: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

Microsoft MVP에 도젂하세요

그리고

열정…

www.krmvp.co.kr

Page 7: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

다룰 내용

• SQL Server 2005/2008 이슈

• 설치 젂후 고려 사항 및 구성 튜닝

• 도입 후 변화 및 모니터링 결과

Page 8: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

SQL Server 2005/2008 이슈 Windows Server 2008R2 기반

Page 9: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 문서 이해를 위한 용어 통일

• CPU = 논리적 CPU (Hyper-Threading 포함)

• Core = 물리적 Core

• Socket

시작하기 젂

Page 10: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 차세대 시스템을 위한 H/W 업그레이드

• CPU

• 새로운 프로세서, 현재 보다 많은 Core, but…낮은 Clock 속도

• Memory

• 대용량의 분석용 쿼리, 현재 보다 많은 메모리

• Storage는 대상에서 제외

장비 업그레이드

Page 11: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 8 Sockets x 10 Cores

• 160 CPU?

• No Hyper-Threading

• 실제 메모리

• 사용 메모리 14.2GB?

• 업그레이드 젂, 누가?

80 Cores 256GB Memory

-- 실제 메모리(MB) -----------

전체 262038 사용 가능 247472 여유 245011

14.2GB

Page 12: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 64 CPU

• Kernel도 맞춰짂 상태

SQL Server 2005/2008 지원 프로세서 수

80 Cores에서는 무슨 일이?

Page 13: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• Windows Server 2008R2

• 256 Cores (1024)

• 새로운 Processor(Kernel) Group 개념 도입

• SQL Server 2008R2

• 256 Cores

• X64, IA64 및 하드웨어의 종속

새로운 지원과 변화

Page 14: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• NUMA를 쓰시나요? • 최근 동향

• CPU Socket 당 1-NUMA 노드 • 8 Socket = 8 NUMA 노드

• CPU 0 ~ CPU 9 (노드 별)

• 256GB Memory / 8 / 10 Cores

NUMA

Page 15: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• NUMA와 유사하지만 상위 수준

프로세서 그룹(Processor Group) 예제

Windows

Kernel

Group 0

NUMA 0

NUMA 1

NUMA 2

NUMA 3

NUMA 4

NUMA 5

NUMA 6

NUMA 7

Hardware

NUMA 6

CPU

Socket CPU Core

HT HT

CPU Core

HT HT

CPU Core

HT HT

CPU Core

HT HT

NUMA 7

CPU

Socket CPU Core

HT HT

CPU Core

HT HT

CPU Core

HT HT

CPU Core

HT HT

Kernel

Group 1

NUMA 0

NUMA 1

NUMA 2

NUMA 3

NUMA 4

NUMA 5

NUMA 6

NUMA 7

Kernel

Group 2

NUMA 0

NUMA 1

NUMA 2

NUMA 3

NUMA 4

NUMA 5

NUMA 6

NUMA 7

Kernel

Group 3

NUMA 0

NUMA 1

NUMA 2

NUMA 3

NUMA 4

NUMA 5

NUMA 6

NUMA 7

Page 16: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 무슨 일이 벌어짂 걸까?

SQL Server 2005 에서는 ?

Page 17: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

SQL Server 2005 – 프로세서 그룹 결과

40 Cores - 두 그룹 중 하나에 할당

Page 18: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• groupsize maxsize

• maxgroup [ on | off ]

• etc…

bcdedit.exe - 부팅 구성 데이터 저장소 편집기

실제 적용엔 실패

Page 19: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• Socket 당 Core 수 조정

• BIOS 레벨

• 10 Cores 8 Cores

• 총 80 Cores 64 Cores

• 결론

• SQL Server 2008R2 or SQL Server 2012 필요

조정 사항 및 결론

Page 20: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• Sysinternals 유틸리티 중 하나

• Core 정보

• 가상화 관련 기능 정보

• Socket 정보

• NUMA node 정보

• NUMA Access 비용 정보

• Cache 정보

• Processor Group 정보

Coreinfo.exe

10 8Cores 변경 후

Page 21: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

설치 젂후 고려사항 for SQL Server

Page 22: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 고성능 옵션 권장

• 약 10~30% 성능 이득

• BIOS 설정과 병행 (다음 슬라이드)

• “Core Parking?”

Windows 젂원 관리 옵션

Page 23: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• BIOS 젂원 관리 옵션 최적화

• Intel Turbo Boost

• Hyper-Threading 은 다차원적 판단 필요

• 외부 장치 성능에도 영향

하드웨어 젂원 관리 옵션

Page 24: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 대형 메모리 장비용

• 2배+ 성능 향상 사례

• Standard Edition은

별도 작업 필요

“메모리에 페이지 잠금” 권한 할당

SQL Server 서비스 계정 추가

Page 25: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 추적 플래그(Trace Flag) 834

• 약 5~10% 처리 성능 증가

• SQL Server 젂용 장비, 64bit, Enterprise Edition

• “메모리에 페이지 잠금” 권한

• 서비스 시작 시간 증가 고려 – 확인 필요 • Windows Server 2008R2 향상

Large Page Allocations 고려

시간만 측정,

미 적용

Page 26: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• CPU 수에 따라 자동 설정

• 계산식(64bit) = 512 + ((#CPU – 4) * 16)

= 512 + (64 – 4) * 16

= 1472

• “max server memory” 설정 시 변수

Max Worker Threads

Page 27: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 일반적으로 알려짂 기본 공식

• 최대 메모리(x64 경우)

= 물리적 메모리

- OS(2GB+)

- SQLThread(2MB) x Worker(Threads) 수

- 기타메모리(XP, In-Proc OLEDB, CLR GC, etc)

- 기타 App용 메모리

= 256GB 일 경우는? ^^;

Max Server Memory 설정

Page 28: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 쿼리/연산자 당 동시 최대 병렬처리 수준(CPU 수) • 최소한, MAXDOP 보다 많은(> +1) Worker 소비

• 심한 경우, MAXDOP의 3배 이상도 소비

• 기본값 0(zero)

• 그럼 몇 개란 얘기?

• 권장 사항 • 순수 OLTP 시스템, 1

• OLTP + OLAP 시스템, N (여러가지 홖경 고려)

• 병렬 처리를 위해 개별 쿼리별로 MAXDOP 힌트 홗용

Max Degree of Parallelism(MAXDOP) 설정

Page 29: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• 160 CPU 필요? (CPU 평균사용률 8%)

• 10 Cores / NUMA 노드

• 20 CPUs / NUMA 노드

• 256GB Memory 고려

• Worker(Thread) 부족? • 필요 시 직접 조정 가능

• Max Memory 설정 변수

• 대량 병렬 처리 병목 및 성능 저하 고려

• 순수 OLTP 시스템이나 작은 시스템 및 필요에 따라 적용

Hyper-Threading 적용 이슈

Page 30: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

ALTER SERVER CONFIGURATION 명령 (2008R2 이후)

ALTER SERVER CONFIGURATION

SET PROCESS AFFINITY CPU=0 TO 63;

ALTER SERVER CONFIGURATION

SET PROCESS AFFINITY NUMANODE=0, 7;

ALTER SERVER CONFIGURATION

SET DIAGNOSTICS LOG ON;

ALTER SERVER CONFIGURATION

SET FAILOVER CLUSTER PROPERTY HealthCheckTimeout = 15000;

2008R2

2012

Page 31: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

할당 병목 방지

• 사젂 공간 할당

• 파일 개수

“PAGELATCH 대기 [2:<fileid>:<fixed page no>]

tempdb 파일 개수 추가 및 공간 할당

• 8개에서 시작, 4개씩 증가 1개 대비 약 20배 향상 (BMT 결과)

• 대량 임시개체 사용 시 TF1118 고려

• 정말 필요할 경우 #CPU

Bob Ward 권장 사항

(Principal Architect @ Microsoft )

Page 32: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

도입 후 변화

및 모니터링 결과

Page 33: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

여담: 훌륭한 User Interface란?

Page 34: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

CPU 사용률 변화

MAX: 77.702

MAX: 17.851

Page 35: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

Worker (Thread) 변화

960 1472 필요 시 상향 조정 가능

Page 36: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

메모리 도둑? 넌 누구냐?

sqlservr.exe 2,868,812(KB)

14639MB 사용 중

누가?

Page 37: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

RAMMap.exe

Nonpaged Pool 12,796,456 K

The kernel and device drivers use nonpaged pool to store data that might be access when the system can’t handle page faults...... Nonpaged pool is therefore always kept present in physical memory and ……, by Mark Russinovich

Page 38: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• Coreinfo.exe 내용

NUMA Node 간 액세스 비용 측정

Page 39: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

NUMA 외부 Node 메모리 참조

NUMA 노드 ID

Target pages 3,899,392 3,899,392 3,899,392 ……

Database pages 3,218,270 3,534,226 3,600,497 ……

Page life expectancy 535,919 468,440 744,259 ……

Foreign pages 315,307 32 0 ……

30,464GB

일부 노드에서 최대 3GB 발생

SQLServer:Buffer Node

Page 40: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

Plan Cache

7,400(MB)

6,632

15,468(MB)

13,535

Page 41: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

성능카운터: PageLifeExpectancy

평균 2,480 평균 184,609

Page 42: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

성능카운터: Lazy Writes/sec

평균 2.812 평균 0.003

Page 43: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

Paging 파일 크기

현재: 4092 MB

[ Windows Server 2003 ]

조정 시 모니터링 항목 현재: 262038 MB

[ Windows Server 2008R2 ]

Page 44: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

SQL Server 2012 – Memory Manager Redesign

Predicate sizing and governing SQL memory consumption:

sp_configure „max server memory‟ now limits all memory committed by SQL Server

Resource Governor governs all SQL memory consumption (other than special cases like buffer pool)

Improved scalability of complex queries and operations that make > 8K allocations

Improved CPU and NUMA locality for memory accesses

Single memory manager that handles page allocations of all sizes

Consistent Out-of-memory handling & management across different internal components

1

2

Page 45: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용

• Hardware Size 결정 시 충분한 검토

• Windows와 SQL Server 궁합 맞추기

• Hardware 도입 시 최소한의 성능 테스트 수행

• Upgrade 젂 성능 관련 수치 및 정보 확보

• Hardware, Windows 및 SQL Server 구성 튜닝 필수

• Upgrade 후 성능 모니터링

요약

Page 46: “80 Cores 256GB Memory”download.microsoft.com/download/A/C/F/ACF9283A-F123-48A0... · 2018. 10. 16. · 80 Cores 256GB Memory -- 실제 메모리(MB) ----- 전체 262038 사용