확장 이벤트로 데이터베이스 성능 분석

이 페이지에서는 인스턴스에서 확장 이벤트(XEvents)를 사용하는 방법을 설명합니다.

Cloud SQL은 데이터베이스 성능을 모니터링, 식별, 문제 해결하기 위해 XEvents 사용을 지원합니다. 이를 위해 XEvent 세션을 만들고 XEvent 출력 파일을 읽습니다. 인스턴스에서 또는 Cloud Storage 버킷에서 XEvent 파일을 다운로드하여 XEvent 출력 파일을 읽을 수 있습니다.

시작하기 전에

XEvent 파일을 Cloud Storage 버킷에 업로드하려면 Google Cloud 계정에서 버킷을 만듭니다.

권장사항

  • 리전 간 큰 파일을 전송하지 않도록 방지하려면 다음 중 하나를 수행하는 것이 좋습니다.
    • 멀티 리전 Cloud Storage 버킷 만들기
    • 인스턴스와 동일한 리전에서 대상 Cloud Storage 버킷 설정
  • XEvents를 사용하기 전에 스토리지 자동 증가를 사용 설정합니다. XEvent 출력 파일은 총 크기 및 보관 간격에 따라 상당한 디스크 공간이 필요할 수 있습니다.
  • 너무 많은 XEvent 파일이 장시간 보관되지 않도록 방지하려면 Cloud Storage 버킷에 대해 데이터 보관 정책을 설정합니다.
  • SSMS UI를 사용하여 XEvent 세션을 만들었지만 입력 값의 일부 상자가 표시되지 않는 경우 XEvent 세션 만들기 창의 크기를 조절합니다.

XEvent 세션을 만드는 방법

XEvents는 인스턴스에서 자동으로 사용 설정됩니다.

CREATE EVENT SESSION 명령어를 사용하여 새 XEvent 세션을 정의합니다. 또한 SQL Server Management Studio(SSMS)의 사용자 인터페이스를 사용하여 XEvent 세션을 만들 수 있습니다.

Cloud SQL은 모든 XEvent 세션에 다음 매개변수를 적용합니다.

매개변수 설명 허용되는 값
FILENAME XEvents 세션 데이터를 저장할 파일 이름과 경로를 지정합니다. /var/opt/mssql/xevents/로 시작하는 모든 경로
MAX_FILE_SIZE 새 파일이 생성되기 전 각 출력 파일의 최대 크기를 지정합니다. 최소 10MB
최대 1GB
MAX_MEMORY 이벤트 버퍼링을 위해 세션에 할당할 최대 메모리 양을 지정합니다. 최소 4MB
최대 8MB
MAX_DISPATCH_LATENCY 이벤트가 대상으로 전송되기 전에 이벤트 디스패치 큐에 남아 있을 수 있는 최대 시간(초)을 지정합니다. 최소 1초
최대 30초
MAX_EVENT_SIZE 각 이벤트의 최대 크기(바이트)를 설정합니다. 최소 4MB
최대 8MB

XEvent 세션 구성 매개변수

다음 매개변수를 커스텀 플래그로 사용하여 XEvent 세션을 구성할 수 있습니다.

매개변수 설명
cloud sql xe bucket name XEvent 세션 출력을 업로드할 Cloud Storage 버킷을 지정합니다. 지정되지 않은 경우 Cloud SQL은 XEvent 세션 출력 데이터를 Cloud Storage에 업로드하지 않습니다.
cloud sql xe output total disk size (mb) 모든 XEvent 세션의 출력을 위해 예약할 디스크 공간을 지정합니다. 지정하지 않으면 Cloud SQL에서 기본 디스크 공간인 512MB를 사용합니다. XEvent 출력 파일이 cloud sql xe output total disk size (mb) 값보다 더 많은 디스크 공간을 사용하면 Cloud SQL은 디스크에서 이러한 파일을 삭제합니다.
cloud sql xe file retention (mins) XEvent 세션의 파일 대상으로 생성된 파일의 인스턴스에 대한 보관 기간을 분 단위로 지정합니다. 지정하지 않으면 Cloud SQL은 기본값인 7일을 사용합니다.
cloud sql xe upload interval (mins) Cloud Storage에 업로드되는 XEvent 파일의 업로드 간격을 지정합니다. 지정하지 않으면 Cloud SQL에서 기본값인 10분을 사용합니다.

이러한 플래그 설정에 대한 자세한 내용은 데이터베이스 플래그 구성을 참조하세요.

XEvent 세션 출력 파일을 읽는 방법

Cloud SQL 인스턴스 또는 Cloud Storage 버킷에서 XEvent 세션 출력 파일을 읽을 수 있습니다.

인스턴스에서 XEvent 출력 파일 읽기

XEvent 세션에서 만든 XEvent 파일에서 데이터를 검색하려면 sys.fn_xe_file_target_read_file 함수를 사용합니다.

예를 들면 다음과 같습니다.

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

버킷에서 XEvent 출력 파일 읽기

Cloud Storage 버킷에서 XEvent 출력 파일을 읽으려면 버킷에서 SQL Server 인스턴스로 파일을 다운로드합니다. 다음 인스턴스 중 하나에서 다운로드할 수 있습니다.

  • Compute Engine Windows 인스턴스
  • Compute Engine Linux 인스턴스
  • SQL Server를 실행하는 다른 유형의 인스턴스

그런 다음 버킷의 XEvent 출력 파일을 로컬 디스크와 같이 해당 인스턴스에 액세스할 수 있는 위치로 전송합니다. 그런 다음 XEvent 출력 파일에서 정보를 반환하기 위해 서버에 대해 VIEW SERVER STATE 권한이 있는 계정으로 sys.fn_xe_file_target_read_file 함수를 실행합니다. 권한에 대한 자세한 내용은 권한을 참조하세요.

XEvent 세션 모니터링

xevents.log 파일을 통해 다음 작업의 XEvent 세션 관련 활동을 모니터링할 수 있습니다.

  • Cloud Storage에 업로드되지 않았고 cloud sql xe output total disk size (mb)와 연결된 값보다 많은 디스크 공간을 차지하는 XEvent 출력 파일이 디스크에서 삭제되었습니다.
  • Cloud Storage에 업로드되지 않았고 cloud sql xe file retention과 연결된 값보다 오래된 XEvent 출력 파일이 디스크에서 삭제되었습니다.

읽기 복제본 고려사항

이 섹션에는 신규 및 기존 읽기 복제본의 XEvent 세션에 대한 정보가 포함되어 있습니다.

새 읽기 복제본

  • 원래 인스턴스의 데이터베이스 플래그를 통해 전달되는 모든 XEvent 세션 구성 매개변수는 새로 생성된 읽기 복제본에서 사용할 수 있습니다.
  • 읽기 복제본이 생성될 때 원본 인스턴스에 있는 모든 XEvent 세션을 읽기 복제본에서 사용할 수 있습니다. 읽기 복제본의 XEvent 세션은 자동으로 시작되도록 구성되지 않은 한 수동으로 시작해야 합니다. 자세한 내용은 XEvent 세션을 만드는 방법을 참조하세요.
  • 기본 인스턴스를 클론하면 기본 인스턴스에 표시되는 모든 데이터베이스 플래그가 클론된 인스턴스에 적용됩니다. 또한 클론된 인스턴스의 서비스 계정에 권한을 부여해야 Cloud Storage 버킷에 다시 액세스할 수 있습니다.

기존 읽기 복제본

  • 데이터베이스 플래그를 통해 원래 인스턴스로 전달된 XEvent 세션 구성 매개변수는 읽기 복제본에 반영되지 않습니다.
  • 원래 인스턴스에 생성된 XEvent 세션은 읽기 복제본에 반영되지 않습니다.