摘要:性能被動分析工具之加的安裝實踐前言最近一直想做個接口性能分析,但是手打?qū)嵲谀馨讶私o累死。怎么辦呢想到之前有寫過一篇我所知道的相關(guān)調(diào)優(yōu)匯總,里面有一個的調(diào)優(yōu)方式。但是使用它酷炫的需要付費,擴展則不需要。
PHP性能被動分析工具之xhgui加tideways的安裝實踐
By:0x584A Date:2016-11-23 17:55:42
前言最近一直想做個接口性能分析,但是手打log實在能把人給累死。怎么辦呢?想到之前有寫過一篇我所知道的PHP相關(guān)調(diào)優(yōu)匯總,里面有一個Xdebug + kcachegrind的調(diào)優(yōu)方式。 但是呢,每次都需要將它產(chǎn)生的cachegrind.out.*文件下到本地,再用kcachegrind打開做分析,而且體驗感也不是特別好(原諒我英語不過三的渣渣...)
性能分析的UI組合uprofiler 點擊下載
xhprof + xhprof.io 【因年久失修,用uprofiler替換即可或用修復(fù)板。支持保存分析數(shù)據(jù)至mysql,函數(shù)調(diào)用記錄完整,內(nèi)核級別函數(shù)都能顯示,支持域名索引】修復(fù)板下載
xhprof or uprofiler or tideways + xhgui 【推薦,保存數(shù)據(jù)至MongoDB,UI界面友好,有中文UI版,不支持域名索引對于線上調(diào)試支持較差】中文版下載,英文原版下載
tideways【推薦,這個最絢的而且一直在持續(xù)維護。但是使用它酷炫的UI需要付費,擴展則不需要。】tideways下載地址
安裝
環(huán)境
tideways + xhgui
php>5.5
mongodb
php5-mcrypt
apt-get install libcurl4-openssl-dev libpcre3-dev
安裝mongodb
前置需安裝php-dev`sudo apt-get install php5-dev` ```shell $ sudo pecl install mongodb $ cd /etc/php5/mods-available $ sudo sh -c "echo "extension=mongodb.so" > /etc/php5/mods-available/mongodb.ini" [sudo] 0x584A 的密碼: $ cd ../fpm/conf.d $ sudo ln -s ../../mods-available/mongodb.ini 20-mongodb.ini $ sudo service php5-fpm restart $ sudo apt-get install mongodb -y ```
安裝xhgui
$ git clone https://github.com/maxincai/xhgui.git $ cd xhgui $ php install.php
加索引
$ mongo > use xhprof > db.results.ensureIndex( { "meta.SERVER.REQUEST_TIME" : -1 } ) > db.results.ensureIndex( { "profile.main().wt" : -1 } ) > db.results.ensureIndex( { "profile.main().mu" : -1 } ) > db.results.ensureIndex( { "profile.main().cpu" : -1 } ) > db.results.ensureIndex( { "meta.url" : 1 } )
安裝tideways
見該安裝地址,選擇系統(tǒng)安裝方式`https://tideways.io/profiler/docs/setup/installation`
需要在nginx應(yīng)用中加入fastcgi_param TIDEWAYS_SAMPLERATE "25";
需要在nginx應(yīng)用中加入fastcgi_param PHP_VALUE "auto_prepend_file=/home/0x584A/www/xhgui/external/header.php";
ngxin應(yīng)用配置
應(yīng)用
server { listen 127.0.10.1:80; server_name app.com; root /home/0x584A/www/app; index index.html index.htm index.php; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?$1 last ; break; } } location ~ ^(.+.php)(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+.php)(.*)$; fastcgi_param TIDEWAYS_SAMPLERATE "25"; fastcgi_param PHP_VALUE "auto_prepend_file=/home/0x584A/www/xhgui/external/header.php"; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $DOCUMENT_ROOT$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT/$fastcgi_script_name; include fastcgi_params; } }
xhgui
server { listen 127.0.10.2:80; server_name debug.com; root /home/0x584A/www/xhgui/webroot; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?$uri&$args; } location ~ .php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
訪問配置好的頁面即可。
注意
分析方式請自行更具url設(shè)置
"profiler.enable" => function() { // url 中包含debug=1則百分百捕獲 if(!empty($_GET["debug"])){ return True; }else{ // 1%采樣 return rand(1, 100) === 42; } },
在xhgui的config/config.default.php中,可設(shè)置采樣命中次數(shù);
return rand(1, 100) === 42; 為1%的采樣率,改成return True;則標(biāo)識每次都采樣
分析參數(shù)過多則清除mongodb數(shù)據(jù)
$ mongo $ use xhprof; $ db.dropDatabase();終極特效 參考
使用xhprof進行線上PHP性能追蹤及分析
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22064.html
摘要:上一篇文章里,我們介紹了如何基于擴展來分析性能,并記錄到日志里,最后使用擴展自帶的在里展示出來。本次測試中,實際使用了擴展切換為擴展后里看不到數(shù)據(jù),原因未知。雖然來自但已經(jīng)很久不更新,官方源已經(jīng)顯示此包已廢棄,不再維護。 上一篇文章里,我們介紹了如何基于xhprof擴展來分析PHP性能,并記錄到日志里,最后使用xhprof擴展自帶的UI在web里展示出來。本篇文章將講述2個知識點: ...
摘要:的一鍵安裝開發(fā)環(huán)境非侵入式監(jiān)控平臺優(yōu)化系統(tǒng)性能定位的神器之前在用做本地開發(fā)環(huán)境,因為沒有這些對程序性能追蹤及分析的工具,所以索性基于的編排了一套自己使用。 DNMP PLUS dnmp = Docker + Nginx + MySQL + PHP + Redis + MongDB plus = xhgui + xhprof + tideways dnmp-plus = PHPer 的一...
摘要:日志日志是我們用得最多的日志,所以我們單獨放在根目錄下。會目錄映射容器的目錄,所以在配置文件中,需要輸出的位置,我們需要配置到目錄,如日志因為容器中的使用的是用戶啟動,它無法自行在下的增加日志文件。 DNMP PLUS dnmp = Docker + Nginx + MySQL + PHP + Redis + MongDB plus = xhgui + xhprof + tideway...
閱讀 2942·2023-04-26 01:32
閱讀 1541·2021-09-13 10:37
閱讀 2278·2019-08-30 15:56
閱讀 1670·2019-08-30 14:00
閱讀 3043·2019-08-30 12:44
閱讀 1961·2019-08-26 12:20
閱讀 1056·2019-08-23 16:29
閱讀 3228·2019-08-23 14:44