1. 程式人生 > >mac PHP效能測試 tideways + xhgui+ nginx + php7

mac PHP效能測試 tideways + xhgui+ nginx + php7

前言:

    由於工作中需要對資料量較大的資料表進行操作時,出現504 time-out報錯。於是在開始搭建tideways + xhgui。

我的系統環境:

    mac+ +tideways + xhgui+ nginx + php7

搭建過程:

    1.安裝mongo:(https://www.jianshu.com/p/2d0a1ecd0c82)

        安裝:brew install mongo(如果沒成功,brew search mongo搜下) 

        修改環境變數: 作用是把mongo/bin加入$path,以免每次都輸入sudo mongo 

$ touch .base_profile
$ vim .base_profile

        加入path:

export MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin
        啟動服務端:(mongod.conf檔案中bindIp: 127.0.0.1意思是本機訪問,如果是外網訪問需要重新設定)
mongod --config /usr/local/etc/mongod.conf
        如果要修改資料庫路徑:輸入
mongod --dbpath 路徑

    2.安裝PHP mongodb擴充套件

        注意點:是mongodb的擴充套件,不是mongo擴充套件

        注意版本。後面下載的xhgui對mongo擴充套件的版本有要求。

        在網上他們都是用brew install php70-mongo之類。但是我brew search也沒有,還是乖乖make吧。

        下載mongodb擴充套件包:(我下載的是mongo-1.4.2但是後面執行顯示版本太高了。於是就下砸了mongo-1.4.0)

cd
wget http://pecl.php.net/get/mongodb-1.4.0.tgz
tar -zxvf mongodb-1.4.0.tgz
cd mongodb-1.4.0
phpize
./configure --with-php-config=你的php-config路徑 我的是在/usr/local/Cellar/[email protected]
/7.1.16_1/bin/php-config make make install

    3.安裝tideways擴充套件:

git clone https://github.com/tideways/php-profiler-extension.git
cd php-profiler-extension
phpize
./configure --with-php-config=你的php-config路徑
make(執行這行報錯於是重來)
---------------------------------------
git clone https://github.com/tideways/php-profiler-extension.git
cd php-profiler-extension
phpize
./configure --with-openssl-dir=你的openssl路徑(我的路徑/usr/local/opt/[email protected])
make 
make install

        配置php.ini:

extension=tideways.so
tideways.auto_prepend_library=0
extension=mongodb.so

        重啟php-fpm即可(可以使用php -m檢視是否安裝了mongodb和tideways擴充套件)

    下載專案:

        直接使用的是:https://github.com/maxincai/xhgui但是這個7.1之後執行就會報錯了。所以就找了另外一個連結

git clone https://github.com/perftools/xhgui.git
cd xhgui
php install.php(看下是否有vendor這個目錄)

        mongo新增索引:

$ 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.ensureInd
    xhgui 預設是採集1% ,如果是排查問題時還是希望能夠100%採集會比較方便。進入xhgui原始碼目錄,修改config/config.default.php檔案,
平時仍然按1%的取樣率取樣,防止資料增長過快,當想除錯時,就在URL中新增debug=1的引數即可。

在xhgui/config/config.default.php中,找到profiler.enable這裡,按如下修改:

mongo
'profiler.enable' => function() {
    // url 中包含debug=1則百分百捕獲
    if(!empty($_GET['debug'])){
        return true;
    } else {
        // 1%取樣
        return rand(1, 100) === 42;
    }
},

    在你要檢視的專案nginx配置 修改配置:我的目錄在/usr/local/etc/nginx/vhost/adb.conf

fastcgi_param TIDEWAYS_SAMPLERATE “100"; #是否取樣取決於xhgui的隨機數配置和這裡的取樣率配置,兩者必須同時滿足,這裡簡單設定成100,由xhgui>去控制
fastcgi_param PHP_VALUE "auto_prepend_file=/home/wwwroot/xhgui/external/header.php";

執行:

    php -S 0:8080 -t webroot(如果你的8080埠有被佔用,換個埠即可,我監聽的是5678)

    訪問:127.0.0.1:5678即可(你在訪問abd.com的時候。就可以看到127.0.0.1:5678頁面中效能了)

錯誤歸納:

    1.安裝版本不對:(我安裝的是mongo 而不是mongdb)

zend_object_value php_mongoclient_new(zend_class_entry *class_type TSRMLS_DC);
    2.openssl不對。phpize之後./configure --with-openssl-dir即可
make: *** [src/libmongoc/src/mongoc/mongoc-crypto-openssl.lo] Error 1
    3.下載xhgui不支援7
Uncaught ErrorException: Function mcrypt_module_open() is deprecated
    4.最後一個是php install   composer不能生成vendor檔案。使用composer update發現我的mongo擴充套件版本太高了

相關推薦

mac PHP效能測試 tideways + xhgui+ nginx + php7

前言:    由於工作中需要對資料量較大的資料表進行操作時,出現504 time-out報錯。於是在開始搭建tideways + xhgui。我的系統環境:    mac+ +tideways + xhgui+ nginx + php7搭建過程:    1.安裝mongo:(

PHP效能測試工具xhprof安裝與使用

一、安裝 1 2 3 4 5 6 7 wget https://pecl.php.net/get/xhprof-0.9.4

mac攻略(4) -- 使用brew配置php7開發環境(mac+php+apache+mysql+redis)

編譯 ror 證明 path環境變量 pla match 系統 tar 模塊 [http://www.cnblogs.com/redirect/p/6131751.html] 網上有很多文章都是錯誤的,因為是copy別人的,作者沒有自己親測,不僅不能給新手提供幫助,還

發布PHP項目(nginx+PHP7+mysql 5.6)

true 如果 火墻 oot roo pre brush sql rep 一、環境檢查 1、檢查nginx ps -ef | grep "nginx" 顯示如下內容則代表nginx啟動正常 root 3285 1 0 12:57 ? 00:00:00 nginx:

測試PHP是否安裝成功時,nginx報錯:"Primary script unknown"

stderr php pri index known req tde stc 參數 小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260-------謝謝您的參考,如有疑問,歡迎交流 環境php-5.6.36nginx-

PHP歸檔phar效能測試

PHP自從5.3後新增PHAR歸檔,Phar 歸檔的概念來自 Java™ 技術的 JAR 歸檔,它同意使用單個檔案打包應用程式。這個檔案裡包括執行應用程式所需的全部東西。該檔案不同於單個可執行檔案,後者通常由程式語言生成,比方 C。由於該檔案實際上是一個歸檔檔案而非編譯過的應用程式。因此

效能測試二十二:環境部署之Nginx

    由於單純用tomcat只能通過ip+埠號的形式訪問,這樣只能訪問一個tomcat,而真實專案中又不可能只用一兩個tomcat,所以就需要Nginx來進行分配訪問請求, Nginx本身效能非常好,據官網介紹,每秒支援50Wtps Nginx只是負責轉發請求,不處理邏輯

Mac 使用ab效能測試工具

Mac 使用ab命令進行壓測 1.在Mac中配置Apache ①啟動Apache,開啟終端 sudo apachectl -v 如下顯示Apache的版本 sudo apachectl start 這樣Apache就啟動了。開啟Safari瀏覽器位址列輸入 “http://localhost”,可以看到內

splFixedArray和PHP array的簡單效能測試對比

自從5.3版本開始,PHP在SPL擴充套件中提供了一個叫做splFixedArray的陣列[連結],splFixedArray陣列相比標準的PHP陣列更接近於C語言的陣列,而且由於splFixedArray沒有使用雜湊(Hash)儲存方式,因此效率更高。下面我們

PHP中將字串轉化為整數(int) intval() printf() 效能測試

背景、概述   早在Sql注入橫行的前幾年,字串轉化為整數就已經被列為每個web程式必備的操作了。web程式將get或post來的id、整數等值強制經過轉化函式轉化為整數,過濾掉危險字元,儘可能降低系統本身被Sql注入的可能性。    現如今,雖然Sql注入已經逐漸淡出歷史舞臺,但是,為了保證web程式的正

PHP效能分析,測試

phpdbg /usr/local/php5.6/bin/phpdbg exec /www/index.php b 22 [L24 0x7fd58508f1b8 ZEND_INCLUDE_OR_EVAL C41

mac os下配置nginx+php7.1+fastcgi

mac os 預裝的php 版本 是 5.6.3,使用Homebrew將php更新到php7.1 並搭建 nginx。 安裝 nginx $ brew search nginx $ brew install nginx // 安裝之後,常用的配置路徑有: /

Nginx快取區記憶體配置大小對效能測試的影響

現象:Nginx與應用都在同一臺伺服器(4g記憶體、4核cpu)上,nginx快取區記憶體配置1g,開啟nginx的accesslog,跑圖片終端頁效能指令碼,觀察到accesslog裡面有90%以上的MISS狀態的,nginx快取沒有起到作用,加大nginx快取記憶體為2

nginx和apache併發效能測試對比

今天在ubuntu 12.04 service版本上搭建了apache2+php的站點以及nginx+php5-fpm的站點,簡單地用apache自帶的ab工具測試了一下併發的效能,具體的測試指令碼如下: <?php     $arr = array();     f

Mac下使用homebrew安裝apache+nginx+多個版本PHP切換

1 .安裝brew Homebrew的安裝很簡單,只需在終端下輸入如下指令: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in

mac ox 10.11 brew安裝Nginx+PHP+MySQL+擴充套件

安裝brew 要求:OS X 10.6以上系統,並且安裝有XCode命令列工具 對於10.11的系統需要設定下local的許可權為當前使用者 $ sudo chown -R $(whoami):admin /usr/local brew安裝程式的過程

nginx+tornado與nginx+go的效能測試

記錄一下: nginx做反向代理,單純測試框架。 機器配置: Intel® Core™ i5-3470 CPU @ 3.20GHz 4核心 8G記憶體 test.go: <!-- lang: cpp --> package main import ( "encoding/json" "f

nginx+php7+mysql 在centos7.3下安裝

打開 cannot freetype res user error: nbsp repl source 1、Nginx yum安裝   1)添加Nginx到YUM源     添加CentOS 7 Nginx yum資源庫,打開終端,使用以下命令:     sudo rp

Mac php安裝第三方擴展trie_filter

with clas trie bre 報錯 nload .com enable pat php安裝不要帶enable-debug brew install php56 --with-fpm; trie_filter從git上面下載的,鏈接https://github.c

mac php版本切換

輸入 path osx -o install tro color restart sharp mac os 中自帶php版本,但是很多擴展是不帶的。 這個網站: http://php-osx.liip.ch/提供了幾乎所有的php版本 通過輸入 curl -s h