Méthode 2 d'utilisation de XHProf pour analyser les goulots d'étranglement des performances PHP

不言
Libérer: 2023-04-02 20:06:02
original
1883 Les gens l'ont consulté

Cet article présente principalement la deuxième méthode d'utilisation de XHProf pour analyser les goulots d'étranglement des performances PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Dans l'article précédent, Nous avons présenté comment analyser les performances PHP en fonction de l'extension xhprof, les enregistrer dans le journal et enfin utiliser l'interface utilisateur fournie avec l'extension xhprof pour les afficher sur le Web. Cet article parlera de 2 points de connaissances :

  • Utilisez xhgui pour remplacer l'interface utilisateur par défaut de xhprof, qui est plus facile à analyser

  • . Utilisez l'extension tideways pour remplacer l'extension xhprof

Utilisez une plus belle interface utilisateur : xhgui

xhgui prend en charge les extensions XHProf, Uprofiler ou Tideways, c'est-à-dire à condition que l'une d'entre elles les extensions sont installées. Il suffit de le planter.

Dans ce test, l'extension tideways a été réellement utilisée (aucune donnée n'est visible sur le Web après le passage à l'extension XHProf, la raison est inconnue. Il n'y a aucune donnée lors du passage à Uprofiler.).

Bien que xhprof provienne de Facebook, il n'a pas été mis à jour depuis longtemps. La source officielle a montré que ce package est abandonné et n'est plus maintenu. Tideways est tout le contraire. Les sociétés commerciales le maintiennent et soutiennent activement PHP7. Les deux extensions sont open source. Pour résumer, je vous recommande de choisir tideways pour analyser le code.

Installer l'extension tideways :

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
Copier après la connexion

Installer xhgui

cd  /work/
git clone https://github.com/perftools/xhgui.git xhgui
Copier après la connexion

Si vous devez installer l'interface chinoise, vous pouvez :

git clone https://github.com/laynefyc/xhgui-branch.git  xhgui
Copier après la connexion

puis installez-le en dépendance xhgui :

cd xhgui
php install.php
Copier après la connexion

L'installation prendra quelques minutes, veuillez être patient.

Définissez les autorisations du répertoire de cache et autorisez nginx à créer des fichiers :

chmod -R 777
Copier après la connexion

xhgui a déjà écrit tous les fichiers d'entrée d'injection, situés à external/header.php, donc nous ne le faisons pas besoin d'écrire manuellement quelque chose de similaire au précédent xhprof.inc.php fichier d'injection.

Installez MongoDB et le client

xhgui écrit des journaux sur MongoDB, donc l'utilisation de xhgui nécessite l'installation du serveur MongoDB. Le processus d'installation et de démarrage du serveur MongoDB est omis ici.

Pour améliorer les performances de MongoDB, vous pouvez exécuter la commande suivante pour ajouter un index :

$ /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 } )
Copier après la connexion

De même, puisque xhgui est écrit en PHP, il doit également lire les données dans MongoDB. Installez le client php MongoDB :

pecl install mongodb
Copier après la connexion

Ajoutez ensuite la configuration dans le fichier php.ini :

[mongo]
extension=mongo.so
Copier après la connexion

Vérifiez si l'extension est installée avec succès :

php -m | grep mongo
Copier après la connexion

Redémarrez ensuite le service php-fpm.

Configurer xhgui

Le répertoire de configuration de xhgui a un config.default.php, copiez-le comme config.php, si l'adresse mongodb n'est pas celle par défaut, modifiez :

    'db.host' => 'mongodb://127.0.0.1:27017',
Copier après la connexion

Il y a aussi une modification de la fréquence d'échantillonnage. La valeur par défaut est 1/100 Si testé, changez-la en vrai :

    'profiler.enable' => function() {
        //return rand(1, 100) === 42;
        return true;
    },
Copier après la connexion

Injection du projet de configuration

Dans le précédent. article, nous avons présenté le fichier d'entrée d'injection. Vous pouvez l'écrire dans php.ini ou nginx. Je recommande de l'écrire dans la configuration nginx. Cela n'affectera que les projets correspondant au nginx, pas tous les projets utilisant l'environnement php. Le fichier d'entrée utilise le fichier d'injection fourni avec xhgui :

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;
}
Copier après la connexion

Configurer xhgui web

Nous modifions xhprof.test.com.conf comme :

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;
    }
    
}
Copier après la connexion

Redémarrez le service nginx.

Nous avons demandé l'interface de l'application plusieurs fois, ouvert le navigateur et entré http://xhprof.test.com/, vous pouvez voir :

Méthode 2 dutilisation de XHProf pour analyser les goulots détranglement des performances PHPCliquez sur une certaine demande pour voir les détails :
Méthode 2 dutilisation de XHProf pour analyser les goulots détranglement des performances PHP

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Méthode 1 d'utilisation de XHProf pour analyser les goulots d'étranglement des performances PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!