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

使用phpAnalysis打造PHP應用非侵入式性能分析器,查找PHP性能瓶頸。php

什麼是phpAnalysis

phpAnalysis是一款輕量級非侵入式PHP應用性能分析器,適用於開發、測試及生產環境部署使用,方便開發及測試工程師診斷性能問題:html

  • 經過tideways收集PHP程序單步運行過程當中全部的函數調用時間及CPU內存消耗等信息
  • 信息永久存儲到MySQL數據庫
  • 分析每一個請求執行的信息,幫助開發測試人員快速定位性能問題
  • 非侵入式,不需修改項目PHP代碼
  • 被動分析器,對性能的影響最小,同時收集足夠的信息用於診斷性能問題

當咱們發現生產環境的某個接口執行時間特別長時應該怎麼作?
直接登陸線上機器單步調試?
打大量的log而後分析? mysql

通常咱們能夠把分析流程拆分爲以下幾步操做:git

  1. 分析開發/測試環境下執行是否會慢
  2. 分析預發/Mirror環境執行是否會慢
  3. 生產環境分析代碼執行慢的緣由

1,2,3步驟都須要去分析代碼,看哪部分執行時間長。若是人工一行代碼去排查,須要消耗大量的開發人員的時間而且定位難度很大,於此,phpAnalysis誕生了 :)github

安裝

準備

  1. 依賴的PHP擴展:tideaways, PDO, pdo_mysql, zlib
  2. PHP版本>= 5.4.0

安裝phpAnalysis

下載源代碼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模糊查詢篩選列表
pa_list.png

  • 請求執行基本信息

pa_detail_base.png

  • 請求攜帶的數據

pa_detail_base_infos.png

pa_detail_base_post.png

  • 調用明細

pa_detail_list.png

說明

項目處於開發階段,權限控制未完成且未作性能優化,請勿在生產環境中部署,感謝支持!

對項目有任何意見建議請提issue https://github.com/dreamans/p...

相關文章
相關標籤/搜索