Windows 대상에 대한 이벤트 추적

적용 대상:SQL Server

ETW(Windows용 이벤트 추적)를 대상으로 사용하기 전에 ETW에 대한 실무 지식이 있는 것이 좋습니다. ETW 추적은 확장 이벤트와 함께 사용되거나 확장 이벤트 이벤트 소비자로 사용됩니다. 다음 외부 링크를 클릭하면 ETW에 대한 배경 지식을 제공하는 항목으로 연결됩니다.

ETW 대상을 여러 세션에 추가할 수 있지만 이는 단일 대상입니다. 한 이벤트가 여러 세션에서 발생하는 경우 해당 이벤트는 발생 항목당 한 번만 ETW 대상으로 전파됩니다. 확장 이벤트 엔진은 프로세스당 단일 인스턴스로 제한됩니다.

Important

ETW 대상이 작동하려면 SQL Server 서비스 시작 계정이 성능 로그 사용자 그룹의 구성원이어야 합니다.

ETW 세션에 있는 이벤트의 구성은 확장 이벤트 엔진을 호스트하는 프로세스에 의해 제어됩니다. 엔진은 발생해야 하는 이벤트와 이벤트가 발생하려면 충족해야 하는 조건을 제어합니다.

프로세스 수명 동안 처음으로 ETW 대상을 연결하는 확장 이벤트 세션에 바인딩한 후 ETW 대상은 SQL Server 공급자에서 단일 ETW 세션을 엽니다. ETW 세션이 이미 있는 경우 ETW 대상은 기존 세션에 대한 참조를 가져옵니다. 이 ETW 세션은 지정된 컴퓨터의 모든 SQL Server 인스턴스에서 공유됩니다. 이 ETW 세션은 ETW 대상이 있는 세션에서 모든 이벤트를 수신합니다.

ETW는 이벤트를 사용하고 ETW로 전달하기 위해 공급자를 사용하도록 설정해야 하므로 모든 확장 이벤트 패키지는 세션에서 사용하도록 설정됩니다. 이벤트가 발생하면 ETW 대상은 이벤트에 대한 공급자가 사용하도록 설정된 세션으로 이벤트를 보냅니다.

ETW 대상은 이벤트를 발생시키는 스레드에서의 이벤트 동기 게시를 지원합니다. 그러나 ETW 대상은 비동기 이벤트 게시를 지원하지 않습니다.

ETW 대상은 Logman.exe와 같은 외부 ETW 컨트롤러의 제어를 지원하지 않습니다. ETW 추적을 생성하려면 ETW 대상을 사용하여 이벤트 세션을 만들어야 합니다. 자세한 내용은 CREATE EVENT SESSION(Transact-SQL)을 참조하세요.

참고 항목

ETW 대상을 활성화하면 이름이 XE_DEFAULT_ETW_SESSION인 ETW 세션이 생성됩니다. 이름이 XE_DEFAULT_ETW_SESSION 세션이 이미 있는 경우 기존 세션의 속성을 수정하지 않고 사용됩니다. XE_DEFAULT_ETW_SESSION SQL Server의 모든 인스턴스 간에 공유됩니다. XE_DEFAULT_ETW_SESSION을 시작한 후에는 ETW 컨트롤러(예: Logman 도구)를 사용하여 중지해야 합니다. 예를 들어 명령 프롬프트 에서 다음 명령을 실행할 수 있습니다. logman stop XE_DEFAULT_ETW_SESSION -ets.

다음 표에서는 ETW 대상을 구성하는 데 사용할 수 있는 옵션을 설명합니다.

옵션 허용된 값 설명
default_xe_session_name 최대 256자까지의 문자열입니다. 이 값은 선택 사항입니다. 확장 이벤트 세션 이름입니다. 기본적으로 XE_DEFAULT_ETW_SESSION.
default_etw_session_logfile_path 최대 256자까지의 문자열입니다. 이 값은 선택 사항입니다. 확장 이벤트 세션에 대한 로그 파일의 경로입니다. 기본적으로 이 값은 %TEMP%\XEEtw.etl입니다.
default_etw_session_logfile_size_mb 부호 없는 정수 이 값은 선택 사항입니다. 확장 이벤트 세션의 로그 파일 크기(MB)입니다. 기본값은 20MB입니다.
default_etw_session_buffer_size_kb 부호 없는 정수 이 값은 선택 사항입니다. 확장 이벤트 세션의 메모리 내 버퍼 크기(KB)입니다. 기본값은 128KB입니다.
retries 부호 없는 정수 이벤트를 삭제하기 전에 ETW 하위 시스템에 이벤트 게시를 다시 시도할 횟수입니다. 기본값은 0입니다.

이러한 설정을 구성하는 것은 선택 사항입니다. ETW 대상은 이러한 설정에 기본값을 사용합니다.

ETW 대상은 다음을 담당합니다.

  • 기본 ETW 세션 만들기

  • ETW에 모든 확장 이벤트 패키지를 등록합니다. 이렇게 하면 ETW에서 이벤트를 삭제하지 않습니다.

  • ETW로의 이벤트 흐름 관리. ETW 대상은 확장 이벤트 데이터를 사용하여 ETW 이벤트를 만들고 적절한 ETW 세션으로 보냅니다. 이벤트가 버퍼 크기보다 크거나 데이터가 하나의 ETW 이벤트에 맞지 않는 경우 ETW는 이벤트를 조각으로 분할합니다.

  • 확장 이벤트 패키지를 항상 활성화된 상태로 유지합니다.

ETW에서 사용하는 기본 파일 위치는 다음과 같습니다.

  • ETW 출력 파일은 %TEMP%\XEEtw.etl에 있습니다.

    Important

    첫 번째 세션이 시작된 후에는 파일 경로를 변경할 수 없습니다.

  • MOF(Managed Object Format) 파일은 설치 경로>\Microsoft SQL Server\Shared에 <있습니다. 자세한 내용은 MSDN의 Managed Object Format 을 참조하십시오.

세션에 대상 추가

ETW 대상을 확장 이벤트 세션에 추가하려면 이벤트 세션을 만들거나 변경할 때 다음 문을 포함해야 합니다.

ADD TARGET package0.etw_classic_sync_target

데이터를 보는 방법을 포함하여 ETW 대상을 사용하는 방법을 보여 주는 전체 예제에 대한 자세한 내용은 확장 이벤트를 사용하여 시스템 작업 모니터링을 참조 하세요.