5.4 DTrace를 사용하여 mysqld 추적
MySQL Server의 DTrace 프로브는 MySQL에서 쿼리를 실행하고 그 과정에서 사용되는 시스템의 다양한 영역에 대한 정보를 제공하도록 설계되어 있습니다. 프로브의 구성 및 트리거가 가지는 의미로서 전체 쿼리의 실행은 1 레벨 프로브 ( query-start
및 query-done
)에서 모니터 할 수 있지만 다른 프로브를 모니터함으로써 사용되는 잠금 정렬 방법 또한 각 행 및 스토리지 엔진 수준의 실행 정보 등 관점에서 쿼리 실행에 대한 자세한 정보를 지속적으로 얻을 수 있다는 것입니다.
DTrace 프로브는 클라이언트의 연결 지점 쿼리 실행 행 수준의 조작 및 백 아웃 작업 등 전체 쿼리 프로세스를 추적 할 수 있도록 구성되어 있습니다. 다음 그림과 같이 프로브는 전형적인 클라이언트 연결 실행 연결 해제 시퀀스 동안 특정 시퀀스에서 시작되는 것으로 생각할 수 있습니다.
그림 5.1 플러 거블 스토리지 엔진을 사용하는 MySQL 아키텍처
글로벌 정보는 다양한 수준에서 DTrace 프로브에 인수로 제공됩니다. 글로벌 정보는 연결 ID 사용자와 호스트 및 관계하는 경우 쿼리 문자열에서 이러한 정보는 키 레벨 ( connection-start
, command-start
, query-start
및 query-exec-start
)에서 제공됩니다.
프로브가 깊어 질수록 개별 실행에만 관심을 가지 (행 수준의 프로브는 데이터베이스 및 테이블 이름에 대해서만 정보를 제공합니다)
또는 행 수준의 프로브와 개념적 부모 프로브를 결합 특정 쿼리에 대한 정보를 제공 할 것으로 예상됩니다. 이 예에서는 각 프로브의 형식 및 인수가 제시 될 때 제공됩니다.
MySQL 5.6에서는 이러한 플랫폼에서 DTrace 프로브에 대한 지원이 포함되어 있습니다.
SPARC, x86 및 x86_64 플랫폼에서 Solaris 10 Update 5 (Solaris 5/08)
OS X 10.4 이상
UEK 커널을 가진 Oracle Linux 6 이상 (MySQL 5.6.20 이후)
이러한 플랫폼에서 프로브의 활성화는 자동 인 것입니다. 빌드 중에 프로브를 명시 적으로 활성화 또는 비활성화하려면 CMake에 -DENABLE_DTRACE=1
또는 -DENABLE_DTRACE=0
옵션을 사용하십시오.
Solaris 이외의 플랫폼에 DTrace 지원이 포함되어있는 경우, 그 플랫폼에서 mysqld 빌드는 DTrace 지원이 포함됩니다.
추가 리소스
DTrace 및 DTrace 스크립트 작성의 자세한 내용은 " DTrace 사용자 가이드 "를 참조하십시오.
DTrace의 개요는 MySQL Dev Zone 기사 "Getting started with DTracing MySQL" 을 참조하십시오.