使用phpAnalysis打造PHP应用非侵入式性能分析器,查找PHP性能瓶颈。php
phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发、测试及生产环境部署使用,方便开发及测试工程师诊断性能问题:html
当咱们发现生产环境的某个接口执行时间特别长时应该怎么作?
直接登陆线上机器单步调试?
打大量的log而后分析? mysql
通常咱们能够把分析流程拆分为以下几步操做:git
1,2,3步骤都须要去分析代码,看哪部分执行时间长。若是人工一行代码去排查,须要消耗大量的开发人员的时间而且定位难度很大,于此,phpAnalysis诞生了 :)github
下载源代码sql
cd /home/www git clone https://github.com/dreamans/phpAnalysis.git cd phpAnalysis
修改配置文件数据库
文件位置:/home/www/phpAnalysis/config/database.php 修改数据库连接信息 数据库须要本身建立 建表语句请见install.sql return [ 'connection' => [ 'host' => '127.0.0.1', // 数据库主机名 'port' => 3306, // 数据库端口号 'user' => 'root', // 用户名 'pass' => 'root', // 密码 'db' => 'phpAnalysis', // 数据库名 'tb_prefix' => 'pa_', // 表前缀 ], ];
修改Web Server配置,以Nginx为例性能优化
server { listen 8000; server_name localhost; root /home/www/phpAnalysis/public; index index.html; 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; } }
修改php.iniide
; 告诉PHP程序在执行前首先调用此文件 auto_prepend_file = /home/www/phpAnalysis/agent/header.php [tideways] extension=tideways.so ;不须要自动加载,在程序中控制就行 tideways.auto_prepend_library=0 ;频率设置为100,在程序调用时能改 tideways.sample_rate=100
重启php-fpm进程函数
若是安装顺利,此时访问 http://localhost:8000 能看到效果
支持按应用实例名称、请求时段、url模糊查询筛选列表
项目处于开发阶段,权限控制未完成且未作性能优化,请勿在生产环境中部署,感谢支持!
对项目有任何意见建议请提issue https://github.com/dreamans/p...