데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

SQL Server 2016 Multiple Log Writer Workers

 

  • Version : SQL Server 2016

 

SQL Server 2016에서 소개된 multiple log writer 작업은 최대 4개의 작업자가 로그 쓰기를 가능하도록 확장되었다. 즉 LDF 쓰기 성능이 개선되었다. 수년동안 로그장치는 미디어의 스핀들 및 하드웨어 캐시의 능력에 의해 제한이 있었다. 최근 하드웨어의 발전과 SSD, Flash유형의 스토리지의 성능 발전으로 기존의 로그쓰기를 더 많이 수용할 수 있게 되었다.

 

SQL Server 2016에서는 아래 명령을 사용하여 SQL 서버에서 현재의 로그 쓰기 작업자 수를 확인할 수 있다.

select

    session_id, status, command, scheduler_id, task_address, wait_type

from sys.dm_exec_requests

where command = 'LOG WRITER'

 

 

SQL Server의 Log writer 작업자의 생성수는 SQL Server가 시작될때 하드웨어의 NUMA 노드갯수에 따라 달라진다. 하나의 NUMA 노드가 있는경우 하나의 Log writer가 생성된다. 여러 NUMA 노드 시스템 경우 최대 4개의 log write 스레드가 생성된다.

 

만약 affinity I/O mask가 구성되어 있다면(추천하지는 않음) log writer 스레드는 CPU에 바인딩되어 affinity I/O mask가 구성된다. 그렇지 않으면 log write 스레드는 숨겨진 스케줄러에 의해 분리되어 만들어진다. 숨겨진 스케줄러는 항상 NUMA 노드 0으로 바운드 된다. 이러한 최대 log writer 수는 로그 플러시 큐에 엑세스하는 log writer 작업자의 광범위한 성능 테스트를 기반으로 결정된다.

 

[참고자료]

https://blogs.msdn.microsoft.com/psssql/2016/04/19/sql-2016-it-just-runs-faster-multiple-log-writer-workers/

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
» SQL Server 2016 Multiple Log Writer Workers jevida(강성욱) 2017.01.11 3807
2069 SQL Server 2016 Larger Data File Writes jevida(강성욱) 2017.01.11 3188
2068 SQL Server 2016 향상된 업데이트 스케줄링 알고리즘 jevida(강성욱) 2017.01.11 3651
2067 SQL Server 2016 Automatic Soft NUMA jevida(강성욱) 2017.01.11 3103
2066 SQL Server 2016 Tempdb 환경 설정 jevida(강성욱) 2017.01.11 4394
2065 SQL Server 2016 향상된 즉시 파일 초기화 jevida(강성욱) 2017.01.11 2756
2064 SQL Server 2016 LDF 생성 또는 증가 시 변경된 스탬프 패턴 jevida(강성욱) 2017.01.11 2635
2063 SQL Server 2016 Tempdb 성능 향상 jevida(강성욱) 2017.01.11 4724
2062 SQL Server 2016 DBCC CHECK 작업 성능 향상 jevida(강성욱) 2017.01.11 2376
2061 Microsoft Azure - SQL Server가 포함된 가상 컴퓨터 생성하기 jevida(강성욱) 2017.01.11 1840
2060 데이터베이스에서 사용자 삭제 오류 jevida(강성욱) 2017.01.11 1304
2059 Sys.dm_exec_query_plan 에서 query_plan 컬럼의 NULL 값 반환 jevida(강성욱) 2017.01.11 1875
2058 SSMS에서 유효하지 않은 소유자로 데이터베이스 정보가 보이지 않는 증상 jevida(강성욱) 2017.01.11 1851
2057 SQLCMD 유틸리티 사용하기 jevida(강성욱) 2017.01.11 7905
2056 In-Memory 최적화 테이블을 사용하여 임시 테이블 및 테이블 변수 성능 향상 jevida(강성욱) 2017.01.11 4546
2055 SQL Server Job Agent는 몇 개까지 실행이 가능할까? jevida(강성욱) 2017.01.11 1757
2054 확장이벤트 사용시 주의사항 jevida(강성욱) 2017.01.11 1631
2053 Unix(Linux) timestamp(bigint) 형식을 datetime 으로 변경하기 jevida(강성욱) 2017.01.11 2980
2052 Query Rule Off를 사용한 SQL Server 옵티마이저 비활성화 jevida(강성욱) 2017.01.11 1571
2051 시스템 관리자 권한이 없는 특정 프로그램에서 Trace Flag 사용하기 jevida(강성욱) 2017.01.11 2331





XE Login