Heim  >  Artikel  >  Backend-Entwicklung  >  Methode 2 zur Verwendung von XHProf zur Analyse von PHP-Leistungsengpässen

Methode 2 zur Verwendung von XHProf zur Analyse von PHP-Leistungsengpässen

不言
不言Original
2018-07-07 15:38:221952Durchsuche

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

  • xhgui unterstützt XHProf-, Uprofiler- oder Tideways-Erweiterungen, sofern eine davon vorhanden ist Erweiterungen sind installiert. Einfach einbauen.

In diesem Test wurde tatsächlich die Tideways-Erweiterung verwendet (nach der Umstellung auf die XHProf-Erweiterung sind im Web keine Daten zu sehen, der Grund ist unbekannt. Bei der Umstellung auf Uprofiler liegen keine Daten vor.)

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

Dann xhgui-Abhängigkeiten installieren:

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 Artikel

Dateien einfügen.

MongoDB und Client installierenexternal/header.phpxhprof.inc.phpxhgui 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.

Um die Leistung von MongoDB zu verbessern, können Sie den folgenden Befehl ausführen, um einen Index hinzuzufügen:

$ /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',

und Ändern Sie die Abtastfrequenz, der Standardwert ist 1/100, ändern Sie sie zum Testen auf „true“:

    'profiler.enable' => function() {
        //return rand(1, 100) === 42;
        return true;
    },
config.phpProjektinjektion 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:

jifen.cc.conf

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;
    }
    
}

Starten Sie den Nginx-Dienst neu.

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:

Methode 2 zur Verwendung von XHProf zur Analyse von PHP-LeistungsengpässenDas 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.
Methode 2 zur Verwendung von XHProf zur Analyse von PHP-LeistungsengpässenVerwandte Empfehlungen:

Methode 1 zur Verwendung von XHProf zur Analyse von PHP-Leistungsengpässen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn