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

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

DReplay 활성 세션 초과 에러

 

  • Version : SQL Server 2012

 

SQL Server 2012 버전부터 Distributed Replay라는 새로운 기능이 도입 되었다. 이 기능은 SQL Server의 프로파일러와 마찬가지로 Distributed Replay를 사용하여 캡처된 추적을 업그레이드 된 테스트 환경에서 재생할 수 있다.

 

Microsoft SQL Server Distributed Replay 기능은 여러 컴퓨터를 사용하여 추적 데이터를 생성하고 시뮬레이션을 할 수 있는 장점이 있다. 응용 프로그램 호환성 테스트, 성능 테스트 또는 용량계획을 예측하는데 Distributed Replay를 사용할 수 있다.

 

오늘 주제는 SQL Server 2012에 새로 도입된 SQL Server Distributed Replay를 재생할 때 활성 세션 수가 초과하였을 경우 나타나는 에러에 대해서 살펴 보자.

 

Microsoft SQL Server Distributed Replay 관리 도구인 DReplay.exe는 Distributed Replay Controller와 통신하는데 사용할 수 있는 명령 도구 이다. Replay 옵션은 이벤트 재생 단계를 시작하고 컨트롤러는 재생 데이터를 지정된 클라이언트로 발송하고 분산 재생을 시작하며 클라이언트와 동기화를 한다. 필요에 따라 재생에 참여하는 각 클라이언트는 재생 작업을 기록하고 추적 파일을 로컬에 저장할 수 있다.

 

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

 

DReplay는 내부적으로 진행되는 세션 큐를 유지 관리 한다. 이 대기열은 8192의 길이로 제한되어 연결/해제에 따라 연결 재생 순서로 채워진다. 백그라운드 작업자는 새로운 세션을 추가하고 완료된 세션을 정리하여 재생 작업 큐를 관리 한다.

 

DReplay는 8192의 동시 세션을 재생할 수 있도록 설계되어 있다. 갭처하는 동안 이것은 sys.dm_exec_session이 8192개 이하의 항목이 있어야 한다. 한계를 초과하면 메시지와 함께 대기상태가 나타난다.

 

실제로 동기화 해야하는 세션이 8192를 초과하는 경우 8193, 8194 등의 세션의 재생작업은 이전 작업이 완료 될 때까지 실행되지 않는다.

 

세션을 준비하는 시간보다 재생 시간이 더 오래 걸릴경우 백그라운드 작업자의 수가 세션 한계까지 도달 할 것이다.

 

아래 에러 메시지는 백그라운드 작업이 8192 한계에 도달하여 대기하고 있는 메시지와 재생 작업은 새로이 3개의 세션을 준비하고 다시 세션수가 8192개의 한계에 도달한 내용이다. 백그라운드 작업자는 잠재적인 메모리 문제가 발생하지 않도록 큐의 크기를 제한하고 기다린다.

 

DReplay 로그는 이전에 디스패치 된 커넥션 수를 보여준다. 다음 에러 메시지를 통해 확인 할 수 있다.

2013-07-05 18:59:47:956 OPERATIONAL [Client Replay] 35212 events are dispatched in 8800 connections.

 

 

[참고자료]

 

 


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

No. Subject Author Date Views
1830 SQL Server 2012 Sp1 설치 이슈 및 해결 jevida(강성욱) 2016.09.30 1573
1829 SSD에서 DBCC CHECKDB 성능 벤치마킹 jevida(강성욱) 2016.09.30 1931
1828 Collation에 따른 ALTER DATABASE 실패 jevida(강성욱) 2016.09.30 1928
1827 LDF 파일이 잘리지 않는 이유 jevida(강성욱) 2016.09.30 2051
1826 Tempdb 경합 확인 및 해결 (Tempdb Contention) jevida(강성욱) 2016.09.30 2206
1825 SQL Server IO 병목 확인과 오해 jevida(강성욱) 2016.09.30 2497
1824 SQL Version에 따른 sp_prepare 정보 반환 jevida(강성욱) 2016.09.30 1711
» DReplay 활성 세션 초과 에러 jevida(강성욱) 2016.09.30 1542
1822 저장 프로시저 내 임시 테이블 사용과 프로시저 재컴파일 jevida(강성욱) 2016.09.30 1859
1821 NUMA 노드와 추척플래그 8048 jevida(강성욱) 2016.09.30 819
1820 온라인 인덱스 리빌드와 조각화 증가 jevida(강성욱) 2016.09.30 1602
1819 VARCHAR(MAX) and NTEXT 쿼리 성능 jevida(강성욱) 2016.09.30 4302
1818 CPU 리소스 상태에 따른 병렬 처리 제한 jevida(강성욱) 2016.09.30 1075
1817 매개변수 값의 변경과 SQL 서버 성능 저하 jevida(강성욱) 2016.09.30 1269
1816 IN 절 사용시 예기치 못한 액세스 위반과 SQL Server 종료 jevida(강성욱) 2016.09.30 1060
1815 SQL 버전과 CLR (.NET Framework 버전에 따른 오류) jevida(강성욱) 2016.09.30 1188
1814 SWITCHOFFSET 내장함수의 잘 못된 예측 - 미리 계산한 값을 쿼리에 연결하여 최적화 하기 jevida(강성욱) 2016.09.30 1311
1813 테이블 반환 매개변수 사용과 SQL 2012의 향상된 캐싱 기능 jevida(강성욱) 2016.09.30 1223
1812 디스크 섹터 크기와 데이터베이스 성능 jevida(강성욱) 2016.09.29 1635
1811 CLR 사용시 CPU 사용률 증가 현상 jevida(강성욱) 2016.09.29 1757





XE Login