国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用XHProf分析PHP性能瓶頸(二)

Worktile / 826人閱讀

摘要:上一篇文章里,我們介紹了如何基于擴(kuò)展來(lái)分析性能,并記錄到日志里,最后使用擴(kuò)展自帶的在里展示出來(lái)。本次測(cè)試中,實(shí)際使用了擴(kuò)展切換為擴(kuò)展后里看不到數(shù)據(jù),原因未知。雖然來(lái)自但已經(jīng)很久不更新,官方源已經(jīng)顯示此包已廢棄,不再維護(hù)。

上一篇文章里,我們介紹了如何基于xhprof擴(kuò)展來(lái)分析PHP性能,并記錄到日志里,最后使用xhprof擴(kuò)展自帶的UI在web里展示出來(lái)。本篇文章將講述2個(gè)知識(shí)點(diǎn):

使用xhgui代替xhprof的默認(rèn)UI界面,更便于分析

使用tideways擴(kuò)展替換xhprof擴(kuò)展

使用更漂亮的UI: xhgui

xhgui支持 XHProf, Uprofiler或者Tideways 擴(kuò)展,也就是說(shuō),只要安裝了這幾種擴(kuò)展中的一種即可。

本次測(cè)試中,實(shí)際使用了tideways擴(kuò)展(切換為XHProf擴(kuò)展后web里看不到數(shù)據(jù),原因未知。切換為Uprofiler也沒(méi)有數(shù)據(jù)。)。

xhprof雖然來(lái)自facebook但已經(jīng)很久不更新,官方源已經(jīng)顯示This package is abandoned and no longer maintained(此包已廢棄,不再維護(hù))。tideways恰好相反,一直有商業(yè)公司在維護(hù),并且積極的支持了PHP7。兩個(gè)擴(kuò)展都是開(kāi)源的,綜上所述我建議大家選擇tideways來(lái)分析代碼。

安裝tideways擴(kuò)展:

wget https://github.com/tideways/php-xhprof-extension/archive/v4.1.5.tar.gz -O php-xhprof-extension-4.1.5.tar.gz
tar xzf /php-xhprof-extension-4.1.5.tar.gz 
cd php-xhprof-extension-4.1.5 
phpize  
./configure
make && make install 
安裝xhgui
cd  /work/
git clone https://github.com/perftools/xhgui.git xhgui

如果需要安裝中文界面的,可以:

git clone https://github.com/laynefyc/xhgui-branch.git  xhgui

然后安裝xhgui依賴:

cd xhgui
php install.php

安裝需要等待幾分鐘,請(qǐng)耐心等待。

設(shè)置緩存目錄的權(quán)限,允許nginx創(chuàng)建文件:

chmod -R 777

xhgui已經(jīng)把注入入口文件都寫(xiě)好了,位于external/header.php,無(wú)需我們手動(dòng)去寫(xiě)類似上一篇的xhprof.inc.php注入文件。

安裝MongoDB及客戶端

xhgui 把日志寫(xiě)到了MongoDB,所以使用xhgui需要安裝MongoDB服務(wù)端。此處省略安裝、啟動(dòng)MongoDB服務(wù)端過(guò)程。

為提高 MongoDB 的性能,你可以運(yùn)行以下指令以添加索引:

$ /usr/local/mongodb/bin/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 } )  

同理,由于xhgui是PHP寫(xiě)的,還需要讀取MongoDB里的數(shù)據(jù),需要安裝MongoDB php 客戶端:

pecl install mongodb

然后在php.ini文件添加配置:

[mongo]
extension=mongo.so

查看擴(kuò)展是否安裝成功:

php -m | grep mongo

然后重啟php-fpm服務(wù)。

配置xhgui

xhgui的config目錄有一個(gè)config.default.php,復(fù)制為config.php,如果mongodb地址不是默認(rèn)的,修改:

    "db.host" => "mongodb://127.0.0.1:27017",

還有修改采樣頻率,默認(rèn)是1/100,測(cè)試的話改為true:

    "profiler.enable" => function() {
        //return rand(1, 100) === 42;
        return true;
    },
配置項(xiàng)目注入

上一篇文章中,我們介紹到,注入的入口文件可以寫(xiě)到php.ini或者nginx,我建議寫(xiě)在nginx配置,這樣只會(huì)影響該nginx對(duì)應(yīng)的項(xiàng)目,而不是所有使用該php環(huán)境的項(xiàng)目。入口文件使用xhgui自帶的注入文件:

jifen.cc.conf

location ~ .php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PHP_VALUE "auto_prepend_file=/work/xhgui/external/header.php";
    include        fastcgi_params;
}
配置xhgui web

我們修改xhprof.test.com.conf為:

server {
    listen       80;
    server_name  xhprof.test.com;

    #root /work/xhprof/xhprof_html;
    root /work/xhgui/webroot/;
    index index.php index.html;
    
    location / {
       if (!-e $request_filename) {
            rewrite . /index.php last;
        }
    }

    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;
    }
    
}

重啟nginx服務(wù)。

我們請(qǐng)求幾次應(yīng)用的接口,打開(kāi)瀏覽器輸入http://xhprof.test.com/,可以看到:


點(diǎn)擊某次請(qǐng)求進(jìn)去看詳情:

參考

1、PHP性能追蹤及分析工具xhprof的安裝與使用 - 馬新才的技術(shù)博客 - SegmentFault 思否
https://segmentfault.com/a/11...
2、Tideways和xhgui打造PHP非侵入式監(jiān)控平臺(tái) | 我是大熊
http://blog.it2048.cn/article...


防盜版聲明:本文系原創(chuàng)文章,原發(fā)布于公眾號(hào)飛鴻影的博客(fhyblog)及博客園,轉(zhuǎn)載需作者同意。


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28875.html

相關(guān)文章

  • 使用XHProf查找PHP性能瓶頸

    摘要:是開(kāi)發(fā)的一個(gè)測(cè)試性能的擴(kuò)展,本文記錄了在應(yīng)用中使用對(duì)進(jìn)行性能優(yōu)化,查找性能瓶頸的方法。函數(shù)用于停止性能分析,并返回分析的數(shù)據(jù)。該參數(shù)用于為剖析結(jié)果添加額外的信息,該參數(shù)的值使用以下宏,如果需要提供多個(gè)值,使用進(jìn)行分隔。 XHProf是facebook 開(kāi)發(fā)的一個(gè)測(cè)試php性能的擴(kuò)展,本文記錄了在PHP應(yīng)用中使用XHProf對(duì)PHP進(jìn)行性能優(yōu)化,查找性能瓶頸的方法。 安裝Xhprof擴(kuò)展...

    Xufc 評(píng)論0 收藏0
  • 使用XHProf分析PHP性能瓶頸(一)

    摘要:輸出的性能數(shù)據(jù)中添加數(shù)據(jù)。中間是要分析的代碼。是一個(gè)繪制圖形的工具,可以更為直觀的讓你查看性能的瓶頸。這樣所有使用該環(huán)境的都會(huì)生效。這樣僅該項(xiàng)目生效。 安裝xhprof擴(kuò)展 wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0.9.4.tgz cd xhprof-0.9.4/extension/ sudo phpi...

    pkwenda 評(píng)論0 收藏0
  • tideways+toolkit對(duì)php代碼進(jìn)行性能分析

    toolkit是tideway官方提供的性能分析的命令行工具。如果你只是本地開(kāi)發(fā)調(diào)試接口性能,不想安裝xhgui,那么使用toolkit就足夠了 安裝 安裝tideways拓展 git clone https://github.com/tideways/php-xhprof-extension.git cd php-profiler-extension phpize ./configure mak...

    rubyshen 評(píng)論0 收藏0
  • xhprof使用

    摘要:它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,時(shí)間和內(nèi)存使用情況。它獨(dú)有的數(shù)據(jù)計(jì)算的報(bào)告后處理階段。在數(shù)據(jù)收集時(shí),通過(guò)檢測(cè)循環(huán)來(lái)處理遞歸的函數(shù)調(diào)用,并通過(guò)給遞歸調(diào)用中每個(gè)深度的調(diào)用一個(gè)有用的命名來(lái)避開(kāi)死循環(huán)。 簡(jiǎn)介 XHProf是一個(gè)分層PHP性能分析工具。XHProf是一個(gè)分層PHP性能分析工具。它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,CPU時(shí)間和內(nèi)存使用情況。一個(gè)函數(shù)...

    darryrzhong 評(píng)論0 收藏0
  • PHP 性能分析第一篇: Xhprof & Xhgui 介紹

    摘要:注這是我們應(yīng)用性能分析系列的第一篇,閱讀第二篇可深入了解,第三篇?jiǎng)t關(guān)注于性能調(diào)優(yōu)實(shí)踐。性能分析的行為也會(huì)影響應(yīng)用性能。主動(dòng)被動(dòng)性能分析主動(dòng)分析器在開(kāi)發(fā)過(guò)程中使用,由開(kāi)發(fā)人員啟用。它對(duì)性能的影響最小,同時(shí)收集足夠的信息用于診斷性能問(wèn)題。 注:這是我們 PHP 應(yīng)用性能分析系列的第一篇,閱讀第二篇可深入了解 xhgui,第三篇?jiǎng)t關(guān)注于性能調(diào)優(yōu)實(shí)踐。 什么是性能分析? 性能分析是衡量應(yīng)用程...

    RdouTyping 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<