PHP 性能分析平台搭建 (tideways + xhgui+ nginx + PHP7)
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平台中查看数据分析性能
效果图如下图
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
额,发这个文章的怎么没有介绍啊。
过去 Facebook 曾经打造过一个工具 xhprof (自己搜索),长期未更新
tideways:是有商业公司在维护,并且积极的支持了 PHP7,只是生成日志
xhgui: 一款基于Bootstrap的xhprof UI程序,xhprof生成的日志和tideways生成的日志格式通用
说白就是不用改动你程序的代码,通过 nginx 为你程序上方在加一层监控层(产出固定日志),分析日志的出程序信息
make 这步报错了,求解决方法 php-xhprof-extension-4.1.7/tideways.c:177:86: error: too many arguments to function 'php_pcre_match_impl'