SQL Server 2017 소규모 시스템에서 향상된 리소스 사용

 

·         Version : SQL Server  2017 CU4

 

SQL Server 소규모 컴퓨터에서 엔터프라이즈 서버까지 확장   있도록 설계된 데이터베이스이다일반적으로 데이터베이스는 많은 자원을 필요로 한다특히 CPU  메모리는 데이터베이스의 성능에 매우 중요한 요소이다. (물론 디스크 성능도 중요하다.) SQL Server 2017 CU4에서는 작은 메모리(2GB)에서도 SQL Server 성능이 향상될  있도록 개선 되었다.

·         Improvement: Improves the performance of SQL Server 2017 on smaller systems : https://support.microsoft.com/en-us/help/4078095/improves-performance-of-sql-server-2017-on-smaller-systems

 

[Default Max Worker Threads]

이전에는 기본 최대 작업자 스레드 계산에서 RAM 고려하지 않는 디자인이었다기본 워커 수를 계산하는 공식은 아래와 같다.

Default-Worker-Count = (starting count x86=256 : x64=512) + (## of workers per CPU on the system [x86=8 : x64=16])

 

SQL Server 2017 CU4에서 변경한 사항은 최대 작업자 스레드를 계산할때, RAM 사이즈를 고려하여, RAM 크기가 제한된 시스템에서는 X64 카운트는 2 나누어져 기본 최대 작업자 수를 낮춰 준다. (작업자당 2MB 이하).

·         Sp_configure에서 ‘max workers’ 설정은 시스템 값을 무시할때 사용

·         기본값128 이상으로 설정하는 것을 권장

·         Sys.dm_os_sys_inof 활성 가능한 최대 작업자 설정 값을 출력

 

[CLR Garbage Collection]

CLR 가비지 수집은 클리이언트 모드서버 모드가 있다. (SQL Server 기본값은 서버 모드 이다.) 서버 모드 가비지 수집은 시스템 CPU 수를 기반으로 CLR힙에 대한 공간을 예약한다. SQLCLR 시작되면 서버 모드에서는  가비지 콜렉션을 초기화 하기위해 대량의 메모리 공간을 할당한다이러한 대규모 할당은 운영체제가 스와핑 또는 기타 활동을 유발 시킬  있다클라이언트 모드 가비지 콜렉션은 서버모드의 병렬처리  CPU 활동을 줄여 메모리와 리소스를  차지 한다. SQL Server 2017 CU4에서 변경한 사항은 제한된 소규모 시스템에서 클라이언트 가비지 수집 모드를 사용하여 서버 모드의 가비지 수집시 발생하는 추가 오버헤드를 제거하는 것이다.

 

[참고자료]

https://blogs.msdn.microsoft.com/bobsql/2018/03/18/sql-server-2017-improved-resource-usage-on-smaller-machines/

 

 

2018-06-12 / Sungwook Kang / http://sqlmvp.kr

 

SQL Server, MS SQL,  max worker threads, CLR, garbage collection, SQL 2017, 가비지 콜렉션워커스레드작업자 스레드



출처: https://sqlmvp.tistory.com/1252?category=618825 [Database Lab]
No. Subject Author Date Views
Notice [IT재직자] 개강임박!! 올해 마지막 무료 및 국비지원 교육 (JAVA, 리눅스 기초/고급 , CCNA, CCIE 등) 코난(김대우) 2022.12.02 440
Notice 2022년 11월 SQLER의 강좌 업데이트 리스트 코난(김대우) 2022.12.01 33
Notice 2022 공개SW 페스티벌 - Open Up 코난(김대우) 2022.12.01 33
2143 SQL Server 2016 대용량 데이터 로드시 최소 로깅(minimal logging) 과Batch Size jevida(강성욱) 2019.03.25 363
2142 SQL Server 설치시 발생하는 1638 오류 jevida(강성욱) 2019.03.25 552
2141 SQL Server 666코드의 고유 식별자 오류 jevida(강성욱) 2019.03.25 323
2140 SQL Server AlwaysOn synchronous-commit 환경에서 동기화 레이턴시 트러블슈팅 jevida(강성욱) 2019.03.25 385
2139 SQL Server Scheduling and Yielding 트러블슈팅 jevida(강성욱) 2019.03.25 393
2138 SQL Server 2016 Tempdb 경합(contention) 최적화 jevida(강성욱) 2019.03.25 501
2137 XEvent를 사용하여 Auto tuning 작업 모니터링 jevida(강성욱) 2019.03.25 512
2136 SQL Server In-Memory OLTP에 ASP.NET 세션 상태 저장하기 jevida(강성욱) 2019.03.25 398
2135 SQL Server에서 JSON 데이터 저장하기 jevida(강성욱) 2019.03.25 506
2134 Azure SQL에서 네트워크를 구성하는 방법 jevida(강성욱) 2019.03.25 262
2133 SQL Server 네이티브 컴파일된 저장 프로시저 성능 모니터링 jevida(강성욱) 2019.03.25 501
» SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 jevida(강성욱) 2019.03.25 289
2131 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 440
2130 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 423
2129 SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상 jevida(강성욱) 2019.03.25 319
2128 SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원 jevida(강성욱) 2019.03.25 481
2127 SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침 jevida(강성욱) 2019.03.25 523
2126 SQL Server update on Docker jevida(강성욱) 2019.03.25 414
2125 SQL Server 2017에서 향상된 UDF 실행 계획 jevida(강성욱) 2019.03.25 385
2124 ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) jevida(강성욱) 2019.03.25 541





XE Login

테스트 팝업
Close