使用phpAnalysis打造PHP应用非侵入式性能分析器

前端之家收集整理的这篇文章主要介绍了使用phpAnalysis打造PHP应用非侵入式性能分析器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用PHPAnalysis打造非侵入式性能分析器,查找PHP性能瓶颈。

PHPAnalysis

PHPAnalysis是一款轻量级非侵入式性能分析器,适用于开发、测试及生产环境部署使用,方便开发及测试工程师诊断性能问题:

  • 通过tideways收集PHP程序单步运行过程中所有的函数调用时间及cpu内存消耗等信息
  • 信息永久存储到MysqL数据库
  • 分析每个请求执行的信息,帮助开发测试人员快速定位性能问题
  • 非侵入式,不需修改项目PHP代码
  • 被动分析器,对性能的影响最小,同时收集足够的信息用于诊断性能问题

当我们发现生产环境的某个接口执行时间特别长时应该怎么做?
直接登录线上机器单步调试?
打大量的log然后分析?

一般我们可以把分析流程拆分为如下几步操作:

  1. 分析开发/测试环境下执行是否会慢
  2. 分析预发/Mirror环境执行是否会慢
  3. 生产环境分析代码执行慢的原因

1,2,3步骤都需要去分析代码,看哪部分执行时间长。如果人工一行代码去排查,需要消耗大量的开发人员的时间并且定位难度很大,于此,PHPAnalysis诞生了 :)

准备

  1. 依赖的PHP扩展:,PDO,pdo_mysql,zlib
  2. PHP版本>= 5.4.0

安装phpAnalysis

下载源代码

cd /home/ https: cd phpAnalysis
 

修改配置文件

文件位置:/home/www/phpAnalysis/config/database..<span style="color: #0000ff;">return<span style="color: #000000;"> [

</span>'connection' =><span style="color: #000000;"&gt; [

    </span>'host' => '127.0.0.1',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 数据库主机名</span>

    'port' => 3306,<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 数据库端口号</span>

    'user' => 'root',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 用户名</span>

    'pass' => 'root',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 密码</span>

    'db' => 'phpAnalysis',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 数据库名</span>

    'tb_prefix' => 'pa_',<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 表前缀</span>
],<span style="color: #000000;"&gt;

];

 

修改Web Server配置,以Nginx为例

8000/home/www/phpAnalysis/.location </span>~ \.<span style="color: #000000;"&gt;php$ { fastcgi_pass </span>127.0.0.1:9000<span style="color: #000000;"&gt;; fastcgi_index index</span>.<span style="color: #000000;"&gt;php; fastcgi_param SCRIPT_FILENAME </span><span style="color: #800080;"&gt;$document_root$fastcgi_script_name</span><span style="color: #000000;"&gt;; </span><span style="color: #0000ff;"&gt;include</span><span style="color: #000000;"&gt; fastcgi_params; }

}

修改php.ini

= /home/www/phpAnalysis/agent/.=tideways..auto_prepend_library=0.sample_rate=100
 

重启php-fpm进程

如果安装顺利,此时访问 :8000 能看到效果

  • 请求列表

支持按应用实例名称、请求时段、url模糊查询筛选列表

 

  • 请求执行基本信息

 

  • 请求携带的数据

 

 

 

项目处于开发阶段,权限控制未完成且未做性能优化,请勿在生产环境中部署,感谢支持

原文链接:https://www.f2er.com/php/403000.html

猜你在找的PHP相关文章