Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP性能分析平台搭建

PHP性能分析平台搭建

步履不停
步履不停asal
2019-07-01 15:44:373988semak imbas

PHP性能分析平台搭建

PHP性能分析平台搭建(tideways + xhgui+ nginx + php7)

介绍

搭建一个PHP性能分析平台搭建,在不用改动你程序的代码,通过 nginx 为你程序上方在加一层监控层(产出固定日志),分析日志的出程序信息,进行性能分析优化

一、安装mongodb

此处省略1000字,自己查找文档

二、安装mongodb扩展

    wget http://pecl.php.net/get/mongodb-1.4.0.tgz
    tar -zxvf mongodb-1.4.0.tgz
    cd mongodb-1.4.0
    phpize
    ./configure --with-php-config=你的php-config路径 我的是在/usr/local/Cellar/php@7.1/7.1.16_1/bin/php-config
    make
    make install

三、安装tideways扩展

    git clone https://github.com/tideways/php-profiler-extension.git
    cd php-profiler-extension
    phpize
    ./configure --with-php-config=你的php-config路径
    make 
    make install

四、修改配置文件

    extension=tideways.so
    tideways.auto_prepend_library=0
    extension=mongodb.so

五、下载xhgui项目

    #https://github.com/perftools/xhgui  (汉化)
    git clone https://github.com/perftools/xhgui.git
    cd xhgui
    php install.php(看下是否有vendor这个目录)
    ##项目配置
    #配置文件:config/default_config.php
    #运行目录:webroot
    #nginx rewrite规则
    #   location / {  
    #       try_files $uri $uri/ /index.php$is_args$query_string;  
    #   }

六、配置文件修改

#xhgui 默认是采集1% ,如果是排查问题时还是希望能够100%采集会比较方便。进入xhgui源码目录,修改config/config.default.php文件,
#平时仍然按1%的采样率采样,防止数据增长过快,当想调试时,就在URL中添加debug=1的参数即可。
#在xhgui/config/config.default.php中,找到profiler.enable这里,按如下修改:
#mongo
//采样率
'profiler.enable' => function() {
    // url 中包含debug=1则百分百捕获
    if(!empty($_GET['debug'])){
        return true;
    } else {
        // 1%采样
        return rand(1, 100) === 42;
    }
},
//优化建议:可以给mongo数据表加上索引

七、使用&效果

//在需要的项目中的最开始,引入文件即可
require "/dir/external/header.php";
//操作项目,即可在xhgui平台中查看数据分析性能

效果图如下图

AtAvXkLVlc.pngDBBModRJ8r.png

更多PHP相关技术文章,请访问PHP教程栏目进行学习!

Atas ialah kandungan terperinci PHP性能分析平台搭建. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP实现Snowflake生成分布式唯一IDArtikel seterusnya:详解正则表达式