80 Cores 256GB Memory 그장비에무슨일이있었나? 김정선 대표컨설턴트 / 이사 씨퀄로
발표자소개 컨설턴트 SQL Server 컨설팅 / 연간기술지원 / 강의 /SW 개발 MVP Microsoft MVP (since April, 2002) 강사뉴호라이즌교육센터부산글로벌 IT 교육센터 www.sqlroad.com 집필 / 번역 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
꿈을이루다
상상을이루다 감히네가. 소중한인연과도움들
그들과어깨를나란히
Microsoft MVP 에도젂하세요 www.krmvp.co.kr 꿈 그리고 열정
다룰내용 SQL Server 2005/2008 이슈 설치젂후고려사항및구성튜닝 도입후변화및모니터링결과
SQL Server 2005/2008 이슈 Windows Server 2008R2 기반
시작하기젂 문서이해를위한용어통일 CPU = 논리적 CPU (Hyper-Threading 포함 ) Core = 물리적 Core Socket
장비업그레이드 차세대시스템을위한 H/W 업그레이드 CPU 새로운프로세서, 현재보다많은 Core, but 낮은 Clock 속도 Memory 대용량의분석용쿼리, 현재보다많은메모리 Storage 는대상에서제외
80 Cores 256GB Memory 8 Sockets x 10 Cores 160 CPU? No Hyper-Threading 실제메모리 사용메모리 14.2GB? 업그레이드젂, 누가? 14.2GB -- 실제메모리 (MB) ----------- 전체 262038 사용가능 247472 여유 245011
SQL Server 2005/2008 지원프로세서수 64 CPU Kernel 도맞춰짂상태 80 Cores 에서는무슨일이?
새로운지원과변화 Windows Server 2008R2 256 Cores (1024) 새로운 Processor(Kernel) Group 개념도입 SQL Server 2008R2 256 Cores X64, IA64 및하드웨어의종속
NUMA NUMA 를쓰시나요? 최근동향 CPU Socket 당 1-NUMA 노드 8 Socket = 8 NUMA 노드 CPU 0 ~ CPU 9 ( 노드별 ) 256GB Memory / 8 / 10 Cores
프로세서그룹 (Processor Group) 예제 NUMA 와유사하지만상위수준 Windows Hardware NUMA 6 Kernel Group 0 NUMA 0 NUMA 1 NUMA 2 NUMA 3 NUMA 4 NUMA 5 NUMA 6 NUMA 7 CPU Socket 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 CPU Core HT HT CPU Core HT HT Kernel Group 2 NUMA 0 NUMA 1 NUMA 2 NUMA 3 NUMA 4 NUMA 5 NUMA 6 NUMA 7 CPU Socket NUMA 7 CPU Core HT HT CPU Core HT HT Kernel Group 3 NUMA 0 NUMA 1 NUMA 2 NUMA 3 NUMA 4 NUMA 5 NUMA 6 NUMA 7 CPU Core HT HT CPU Core HT HT
SQL Server 2005 에서는? 무슨일이벌어짂걸까?
SQL Server 2005 프로세서그룹결과 40 Cores - 두그룹중하나에할당
bcdedit.exe - 부팅구성데이터저장소편집기 groupsize maxsize maxgroup [ on off ] etc 실제적용엔실패
조정사항및결론 Socket 당 Core 수조정 BIOS 레벨 10 Cores 8 Cores 총 80 Cores 64 Cores 결론 SQL Server 2008R2 or SQL Server 2012 필요
Coreinfo.exe Sysinternals 유틸리티중하나 Core 정보 가상화관련기능정보 Socket 정보 NUMA node 정보 NUMA Access 비용정보 Cache 정보 Processor Group 정보 10 8Cores 변경후
설치젂후고려사항 for SQL Server
Windows 젂원관리옵션 고성능옵션권장 약 10~30% 성능이득 BIOS 설정과병행 ( 다음슬라이드 ) Core Parking?
하드웨어젂원관리옵션 BIOS 젂원관리옵션최적화 Intel Turbo Boost Hyper-Threading 은다차원적판단필요 외부장치성능에도영향
메모리에페이지잠금 권한할당 대형메모리장비용 2 배 + 성능향상사례 Standard Edition 은별도작업필요 SQL Server 서비스계정추가
Large Page Allocations 고려 추적플래그 (Trace Flag) 834 약 5~10% 처리성능증가 SQL Server 젂용장비, 64bit, Enterprise Edition 메모리에페이지잠금 권한 서비스시작시간증가고려 확인필요 Windows Server 2008R2 향상 시간만측정, 미적용
Max Worker Threads CPU 수에따라자동설정 계산식 (64bit) = 512 + ((#CPU 4) * 16) = 512 + (64 4) * 16 = 1472 max server memory 설정시변수
Max Server Memory 설정 일반적으로알려짂기본공식 최대메모리 (x64 경우 ) = 물리적메모리 - OS(2GB+) - SQLThread(2MB) x Worker(Threads) 수 - 기타메모리 (XP, In-Proc OLEDB, CLR GC, etc) - 기타 App용메모리 = 256GB 일경우는? ^^;
Max Degree of Parallelism(MAXDOP) 설정 쿼리 / 연산자당동시최대병렬처리수준 (CPU 수 ) 최소한, MAXDOP 보다많은 (> +1) Worker 소비 심한경우, MAXDOP의 3배이상도소비 기본값 0(zero) 그럼몇개란얘기? 권장사항 순수 OLTP 시스템, 1 OLTP + OLAP 시스템, N ( 여러가지홖경고려 ) 병렬처리를위해개별쿼리별로 MAXDOP 힌트홗용
Hyper-Threading 적용이슈 160 CPU 필요? (CPU 평균사용률 8%) 10 Cores / NUMA 노드 20 CPUs / NUMA 노드 256GB Memory 고려 Worker(Thread) 부족? 필요시직접조정가능 Max Memory 설정변수 대량병렬처리병목및성능저하고려 순수 OLTP 시스템이나작은시스템및필요에따라적용
ALTER SERVER CONFIGURATION 명령 (2008R2 이후 ) ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU=0 TO 63; 2008R2 ALTER SERVER CONFIGURATION SET PROCESS AFFINITY NUMANODE=0, 7; ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON; 2012 ALTER SERVER CONFIGURATION SET FAILOVER CLUSTER PROPERTY HealthCheckTimeout = 15000;
tempdb 파일개수추가및공간할당 사젂공간할당 파일개수 할당병목방지 Bob Ward 권장사항 (Principal Architect @ Microsoft ) 8 개에서시작, 4 개씩증가 1 개대비약 20 배향상 (BMT 결과 ) 대량임시개체사용시 TF1118 고려 정말필요할경우 #CPU PAGELATCH 대기 [2:<fileid>:<fixed page no>]
도입후변화 및모니터링결과
여담 : 훌륭한 User Interface 란?
CPU 사용률변화 MAX: 77.702 MAX: 17.851
Worker (Thread) 변화 960 1472 필요시상향조정가능
메모리도둑? 넌누구냐? sqlservr.exe 2,868,812(KB) 14639MB 사용중누가?
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
NUMA Node 간액세스비용측정 Coreinfo.exe 내용
NUMA 외부 Node 메모리참조 SQLServer:Buffer Node NUMA 노드 ID 30,464GB 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 일부노드에서최대 3GB 발생
Plan Cache 7,400(MB) 15,468(MB) 6,632 13,535
성능카운터 : PageLifeExpectancy 평균 2,480 평균 184,609
성능카운터 : Lazy Writes/sec 평균 2.812 평균 0.003
Paging 파일크기 [ Windows Server 2003 ] [ Windows Server 2008R2 ] 현재 : 4092 MB 현재 : 262038 MB 조정시모니터링항목
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 1 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 2 Single memory manager that handles page allocations of all sizes Consistent Out-of-memory handling & management across different internal components
요약 Hardware Size 결정시충분한검토 Windows와 SQL Server 궁합맞추기 Hardware 도입시최소한의성능테스트수행 Upgrade 젂성능관련수치및정보확보 Hardware, Windows 및 SQL Server 구성튜닝필수 Upgrade 후성능모니터링