From 68b9206ef82643ab7ed177e3e90f08adef337a84 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Tue, 9 Jun 2026 10:27:46 +0200 Subject: [PATCH] [Sync EN] Add new bpftrace section for DTrace document (#5500) Refs: php/doc-en@939350f9b52be4b91e04ec1a5d41995e63aa5150 Closes: #320 --- features/dtrace.xml | 197 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 196 insertions(+), 1 deletion(-) diff --git a/features/dtrace.xml b/features/dtrace.xml index 83d2219bd..5beb4d065 100644 --- a/features/dtrace.xml +++ b/features/dtrace.xml @@ -1,5 +1,5 @@ - + DTrace Dynamic Tracing (Anwendungsanalyse in Echtzeit) @@ -573,6 +573,201 @@ probe process("sapi/cli/php").provider("php").mark("request__startup") { + + Verwendung von bpftrace mit statischen PHP-DTrace-Sonden + + Auf Linux-Distributionen mit einem Kernel, der eBPF unterstützt, kann sich + das Tool bpftrace direkt an die USDT-Sonden von PHP für DTrace anhängen, + ohne dass SystemTap erforderlich ist. + + + Installation von bpftrace + + bpftrace wird über den Paketmanager der Distribution installiert. Zum + Beispiel unter Oracle Linux, RHEL oder Fedora: + + + + + + Oder unter Debian oder Ubuntu: + + + + + + + + Die folgenden Beispiele gehen davon aus, dass die Ziel-PHP-Binärdatei unter + /usr/bin/php installiert ist. + + + Dieselben USDT-Sonden werden auch von anderen SAPIs bereitgestellt, die aus + demselben Quellbaum erstellt wurden, sodass das Sondenziel stattdessen das + Apache-Modul (libphp.so) oder die Binärdatei des + FastCGI-Prozessmanagers (php-fpm) sein kann; bei Bedarf + ist der entsprechende Pfad einzusetzen oder mit -p über + die PID anzuhängen. + + + Es ist sicherzustellen, dass die Ziel-Binärdatei mit DTrace erstellt wurde + und dass die Umgebung korrekt konfiguriert ist. Weitere Einzelheiten sind + unter PHP für statische DTrace-Sonden + konfigurieren zu finden. + + + Die statischen Sonden in PHP können mittels bpftrace + aufgelistet werden: + + + + + + + + + Dies gibt aus: + + + + + + + + + + <filename>all_probes.bt</filename> - Verfolgung aller statischen PHP-Sonden mit bpftrace + + + + + + + + Das obige Skript verfolgt während der gesamten Dauer eines laufenden + PHP-Skripts alle statischen Sondenpunkte des PHP-Kerns. bpftrace benötigt + root-Rechte: + + + + + + + + + Um einen bereits laufenden PHP-Prozess zu verfolgen (beispielsweise einen + php-fpm-Worker oder einen Apache-Prozess, der + libphp.so lädt), erfolgt das Anhängen über die PID: + + + + + + Der usdt:-Zielpfad im Skript muss mit der Binärdatei des + laufenden Prozesses übereinstimmen; usdt:/usr/bin/php ist + entsprechend auf die php-fpm-Binärdatei oder + libphp.so anzupassen. + + +