Linux我爱编程

PHP性能被动分析工具之xhgui加tideways的安装实践

2016-11-23  本文已影响300人  0x584A

PHP性能被动分析工具之xhgui加tideways的安装实践

By:0x584A Date:2016-11-23 17:55:42

前言

最近一直想做个接口信能分析,但是手动打log实在能把人给累死。怎么办呢?想到之前有写过一篇我所知道的PHP相关调优汇总,里面有一个Xdebug + kcachegrind的调优方式。 但是呢,每次都需要将它产生的cachegrind.out.*文件下到本地,再用kcachegrind打开做分析,而且体验感也不是特别好(原谅我英语不过三的渣渣...)

性能分析的UI组合

安装

  1. 安装mongodb

前置需安装php-devsudo apt-get install php5-dev

$ sudo pecl install mongodb
 $ cd /etc/php5/mods-available
 $ sudo sh -c "echo 'extension=mongodb.so' > /etc/php5/mods-available/mongodb.ini"
 [sudo] 0x584A 的密码:
 $ cd ../fpm/conf.d
 $ sudo ln -s ../../mods-available/mongodb.ini 20-mongodb.ini
 $ sudo service php5-fpm restart
 $ sudo apt-get install mongodb -y
  1. 安装xhgui
$ git clone https://github.com/maxincai/xhgui.git
 $ cd xhgui
 $ php install.php

加索引

$ 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 } )
  1. 安装tideways

见该安装地址,选择系统安装方式https://tideways.io/profiler/docs/setup/installation

  1. ngxin应用配置

    应用

    server {
        listen 127.0.10.1:80;
        server_name  app.com;
        root   /home/0x584A/www/app;
        index  index.html index.htm index.php;
    
        location / {
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php?$1 last ;
                break;
            }
        }
    
        location ~ ^(.+\.php)(.*)$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_split_path_info         ^(.+\.php)(.*)$;
            fastcgi_param TIDEWAYS_SAMPLERATE "25";
             fastcgi_param PHP_VALUE "auto_prepend_file=/home/0x584A/www/xhgui/external/header.php";
            fastcgi_param       PATH_INFO                $fastcgi_path_info;
            fastcgi_param       PATH_TRANSLATED        $DOCUMENT_ROOT$fastcgi_path_info;
            fastcgi_param       SCRIPT_FILENAME  $DOCUMENT_ROOT/$fastcgi_script_name;
            include             fastcgi_params;
        }
    }
    

    xhgui

    server {
            listen 127.0.10.2:80;
            server_name  debug.com;
            root   /home/0x584A/www/xhgui/webroot;
            index  index.html index.htm index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$uri&$args;
        }
    
        location ~ \.php$ {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
    
    

    访问配置好的页面即可。

注意

终极特效

1.png 2.png 3.png

参考

上一篇下一篇

猜你喜欢

热点阅读