PHP와 DTrace 소개
DTrace는 Solaris, macOS, Oracle Linux 및 BSD를 포함한 여러 플랫폼에서 사용할 수 있는 항상 사용 가능한 낮은 오버헤드 추적 프레임워크입니다. DTrace는 운영 체제 동작과 사용자 프로그램 실행을 추적할 수 있습니다. 인수 값을 표시하고 성능 통계를 추론하는 데 사용할 수 있습니다. 프로브는 DTrace D 스크립팅 언어로 작성된 사용자 생성 스크립트로 모니터링됩니다. 이를 통해 데이터 포인트를 효율적으로 분석할 수 있습니다.
사용자의 DTrace D 스크립트에 의해 능동적으로 모니터링되지 않는 PHP 프로브에는 계측 코드가 포함되어 있지 않으므로 정상적인 애플리케이션 실행 중에 성능 저하가 없습니다. 모니터링되는 프로브는 일반적으로 라이브 프로덕션 시스템에서 DTrace 모니터링을 허용할 만큼 충분히 낮은 오버헤드를 발생시킵니다.
PHP는 런타임에 트리거되는 "사용자 수준 정적 정의 추적"(USDT) 프로브를 통합합니다. 예를 들어, D 스크립트가 PHP의 함수 입력
프로브를 모니터링할 때 PHP 스크립트 함수가 호출될 때마다 이 프로브가 실행되고 관련 D 스크립트 작업 코드가 실행됩니다. 예를 들어 이 작업 코드는 PHP 함수의 소스 파일 위치와 같은 프로브 인수를 인쇄할 수 있습니다. 또는 작업에서 각 함수가 호출된 횟수와 같은 데이터를 집계할 수 있습니다.
여기서는 PHP USDT 프로브만 설명합니다. DTrace를 사용하여 임의 기능을 추적하는 방법과 DTrace를 사용하여 운영 체제 동작을 추적하는 방법을 보려면 외부 일반 및 운영 체제별 DTrace 문헌을 참조하십시오. 모든 DTrace 구현에서 모든 DTrace 기능을 사용할 수 있는 것은 아닙니다.
DTrace 정적 프로브는 PHP 5.4에 포함되어 있습니다. 이전에는 » PECL 확장 프로그램을 통해 사용할 수 있었지만 현재는 사용되지 않습니다.
PHP의 정적 DTrace 프로브는 일부 Linux 배포판에서 SystemTap 기능과 함께 사용할 수도 있습니다.