SQL Server/SQL Server Tip

SQL Server 2016 과 추적 플래그 –T8048

SungWookKang 2017. 3. 13. 03:04
반응형

SQL Server 2016 추적 플래그 –T8048

 

Version : SQL Server 2016

 

SQL Server 2016 부터 도입된 Automatic soft NUMA에서 CMemThread partitioning 다양한 변화로 인해 추적 플래그 –T8048 필요 할까?  

Microsoft Document 따르면 SQL Server 2014 SP2 SQL Server 2016이상에서는 –T8048 영향을 주지 않는다고 한다.

·         Trace Flag : https://msdn.microsoft.com/en-us/library/ms188396.aspx

 

SQL Server 2016이전에는 추적 플래그 –T8048 NUMA 분할된 CMemThread 개체를 CPU 파티션 기반 개체로 업그레이드 하는데 사용되었다. CMemThread 개체 일부가 NUMA 파티션으로 업그레이드 되어 추가 파티션을 위해 필요에 따라 –T8048 사용할 있었다.

CMemThread 관한 세부정보는 아래 링크를 참고 한다.

·         CMemThread and Debugging Them  : https://blogs.msdn.microsoft.com/psssql/2012/12/20/how-it-works-cmemthread-and-debugging-them/

 

대다수의 CMemThread 개체(SQL 2005, 2008, 2008R2, 2012, 2014, Azure DB 2016) 분할 되지 않았다. 일부는 NUMA 노드로 분할되고 CPU 생성하는 동안 적은 수만큼 분할된다. 추적 플래그 –T8048 NUMA분할로 이미 생성된 CMemThread 개체만 업그레이드 한다. –T8048 범위는 가지 주요  CMemThread 개체로 제한된다.

SQL Server 2016에서 CMemThread 지정된 파티션으로 CMemthread 생성할 도록 디자인이 업데이트 되었다. 예를 들어 공간을 지원하는 메모리 객체는 기본적으로 CPU 분할로 생성되므로 공간 메모리 객체에 대한 분할 조정이 되지 않는다. 디자인은 개별 CMemThread 개체와 관련된 대기를 모니터링 하며 대기가 방해가 되기 시작하면 SQL Server 특정 CMemThread 사용하는 파티션을 자동으로 업그레이드 한다. SQL Server 대기중인 작업 활동을 기반으로 CMemThread 개체를 자동으로 조정한다.

·         메모리 개체가 글로벌(분할되지 않음)이고 최적화 되어야 경우 SQL Server NUMA 노드로 파티션을 분할 한다.

·         메모리 오브젝트가 NUMA 노드에 의해 파티셔닝 되었다가 이전 파티셔닝 조정으로 인해 추가 대기 조건이 필요하면 CPU 의해 파티셔닝 된다.

이는 실제 버퍼 풀의 sub/super latch 프로모션 디자인에 기반한다. 경합 래치가 분할 있는 처럼 메모리 객체도 분할 된다.   성능 최적화를 위해 SQL Server CMemThread 대기 활동으로 동적으로 조정하도록 설계 되었으며 추적 플래그 –T8048 더이상 유효하지 않거나 SQL Server 2016 필요하지 않게 되었다. 이러한 디자인에는 가지 이점이 있다.

·         추적 플래그 필요 없음

·         시간에 따라 다를 있는 작업 부하에 맞게 동적으로 조정 가능

·         파티셔닝이 필요할 때까지 추가 메모리가 필요하지 않음

메모리 개체가 분할되면 SQL Server 인스턴스의 수명 동안 분할된다. 대기 상태 정보는 일시적이며 지속되지 않음으로 SQL Server 인스턴스를 다시 시작하면 메모리 개체가 기본 상태로 돌아간다. 다시 대기 압력이 발생하면 메모리 객체는 DBA 개입없이 필요에 따라 분할된다.

 

 

[참고자료]

https://blogs.msdn.microsoft.com/bobsql/2016/06/22/does-sql-server-2016-require-trace-flag-t8048/

 

 

2017-01-24 / 강성욱 / http://sqlmvp.kr

 

SQL Server, MS SQL, SQL 2016, TF –T8048, Trace Flag, CMemThread, NUMA, Soft NUMA, Memory object, Memory partitioning

반응형