In diesem Artikel wird hauptsächlich die zweite Methode zur Analyse von PHP-Leistungsengpässen vorgestellt. Sie hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen.
Im vorherigen Artikel. Wir haben vorgestellt, wie man die PHP-Leistung basierend auf der xhprof-Erweiterung analysiert, sie im Protokoll aufzeichnet und schließlich die mit der xhprof-Erweiterung gelieferte Benutzeroberfläche verwendet, um sie im Web anzuzeigen. In diesem Artikel geht es um zwei Wissenspunkte:
Verwenden Sie xhgui, um die Standard-UI-Schnittstelle von xhprof zu ersetzen, die einfacher zu analysieren ist Verwenden Sie die Tideways-Erweiterung, um die xhprof-Erweiterung zu ersetzen
Verwenden Sie eine schönere Benutzeroberfläche: xhgui
Obwohl xhprof von Facebook stammt, wurde es schon lange nicht mehr aktualisiert. Die offizielle Quelle hat gezeigt, dass dieses Paket aufgegeben und nicht mehr gepflegt wird. Tideways ist genau das Gegenteil. Kommerzielle Unternehmen pflegen es und unterstützen PHP7 aktiv. Beide Erweiterungen sind Open Source. Zusammenfassend empfehle ich Ihnen, Tidenwege zu wählen, um den Code zu analysieren.
Tideways-Erweiterung installieren:
wget https://github.com/tideways/php-xhprof-extension/archive/v4.1.5.tar.gz -O php-xhprof-extension-4.1.5.tar.gz tar xzf /php-xhprof-extension-4.1.5.tar.gz cd php-xhprof-extension-4.1.5 phpize ./configure make && make install
xhgui installieren
cd /work/ git clone https://github.com/perftools/xhgui.git xhgui
Wenn Sie eine chinesische Schnittstelle installieren müssen, können Sie:
git clone https://github.com/laynefyc/xhgui-branch.git xhgui
cd xhgui php install.php
Die Installation wird einige Minuten dauern, bitte haben Sie etwas Geduld.
Legen Sie die Berechtigungen des Cache-Verzeichnisses fest und erlauben Sie Nginx, Dateien zu erstellen:
chmod -R 777
xhgui hat bereits alle Injektionseintragsdateien geschrieben, die sich in
befinden, sodass wir dies nicht tun müssen Schreiben Sie manuell etwas Ähnliches wie im vorherigen ArtikelDateien einfügen.
MongoDB und Client installierenexternal/header.php
xhprof.inc.php
xhgui schreibt Protokolle in MongoDB, daher erfordert die Verwendung von xhgui die Installation des MongoDB-Servers. Der Prozess der Installation und des Startens des MongoDB-Servers entfällt hier.
$ /usr/local/mongodb/bin/mongo > use xhprof db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } ) db.results.ensureIndex( { 'profile.main().wt' : -1 } ) db.results.ensureIndex( { 'profile.main().mu' : -1 } ) db.results.ensureIndex( { 'profile.main().cpu' : -1 } ) db.results.ensureIndex( { 'meta.url' : 1 } )
Da xhgui in PHP geschrieben ist, muss es auch die Daten in MongoDB lesen. und MongoDB muss installiert werden. PHP-Client:
pecl install mongodb
Fügen Sie dann die Konfiguration in der php.ini-Datei hinzu:
[mongo] extension=mongo.so
Überprüfen Sie, ob die Erweiterung erfolgreich installiert wurde:
php -m | grep mongo
Starten Sie dann den PHP-FPM-Dienst neu.
Xhgui konfigurieren
Das Konfigurationsverzeichnis von xhgui hat eine config.default.php, kopieren Sie sie als
, wenn die Mongodb-Adresse nicht die Standardadresse ist, ändern Sie:'db.host' => 'mongodb://127.0.0.1:27017',
'profiler.enable' => function() { //return rand(1, 100) === 42; return true; },
config.php
Projektinjektion konfigurieren Im vorherigen Artikel haben wir die injizierte Eintragsdatei vorgestellt kann in PHP .ini oder Nginx geschrieben werden. Ich empfehle, es in der Nginx-Konfiguration zu schreiben, damit es nur das Projekt betrifft, das Nginx entspricht, und nicht alle Projekte, die die PHP-Umgebung verwenden. Die Eintragsdatei verwendet die Injektionsdatei, die mit xhgui geliefert wird:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "auto_prepend_file=/work/xhgui/external/header.php"; include fastcgi_params; }
Configure xhgui web
Wir ändern xhprof.test.com.conf wie folgt:
server { listen 80; server_name xhprof.test.com; #root /work/xhprof/xhprof_html; root /work/xhgui/webroot/; index index.php index.html; location / { if (!-e $request_filename) { rewrite . /index.php last; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Wir haben die Anwendungsoberfläche mehrmals angefordert, den Browser geöffnet und http://xhprof.test.com/ eingegeben. Sie können Folgendes sehen:
Klicken Sie auf eine bestimmte Anfrage, um sie anzuzeigen die Details:Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonMethode 2 zur Verwendung von XHProf zur Analyse von PHP-Leistungsengpässen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!