PHP測(cè)試方案 一、 性能測(cè)試(xhprof) 1)、安裝 Wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar xzvf xhprof-0.9.2.tgz cd xhprof-0.9.2/extension /usr/local/php-5.3.5/bin/phpize ./configure –with-php-config=/usr/local/php-5.3.5/bin/php-config make && make install
2)、配置PHP 在php.ini文件中加入xhprof.so模塊 extension = /usr/local/php-5.3.6/lib/php/extension/xxxx/xhprof.so
保存并關(guān)閉,然后重啟PHP
把xhprof_lib和xhprof_html兩個(gè)目錄拷貝到網(wǎng)站的根目錄”xxx.xxxx.com/xhprof/”下,
2、使用 在需要做性能測(cè)試的地方加入 開(kāi)始: // XHPROF_FLAGS_CPU // XHPROF_FLAGS_MEMORY // XHPROF_FLAGS_NO_BUILTINS 跳過(guò)內(nèi)置函數(shù) // 要設(shè)定要忽略的函數(shù)列表,可以在分析時(shí)給xhprof_enable函數(shù) 指定第二個(gè)參數(shù)[是個(gè)可選參數(shù)], 如: xhprof_enable(XHPROF_FLAGS_MEMORY, array( 'ignored_functions' => array( 'call_user_func', 'call_user_func_array' ) ) );
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 結(jié)束: $xhprofData = xhprof_disable(); define('XHPROF_ROOT', Yii::getPathOfAlias('webroot.xhprof'));
include_once(XHPROF_ROOT . '/xhprof_lib/utils/xhprof_lib.php'); include_once(XHPROF_ROOT . '/xhprof_lib/utils/xhprof_runs.php'); $xhprofRuns = new XHProfRuns_Default(); $runId = $xhprofRuns->save_run($xhprofData, ' <namespace>'); echo "http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run={$runId}&source= <namespace>";
然后就可以根據(jù)上面的地址查看
這樣就可以查看到每個(gè)函數(shù)調(diào)用所消耗的CPU、內(nèi)存、執(zhí)行時(shí)間等
查看單一報(bào)告: http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run={$runId}&source= <namespace> 查看對(duì)比報(bào)告: http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run1=xxxx&run2=xxx&source=<namespace> 查看匯總報(bào)告: http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run=1,2,3&source= <namespace> 加權(quán)匯總 :進(jìn)一步假設(shè),上述3個(gè)運(yùn)特分別對(duì)應(yīng)三種程序,p1.php,p2.php和p3.php ,通常以20%,30%,50%概率混合:要查看匯總報(bào)告所對(duì)應(yīng)的加權(quán)平均數(shù)這些運(yùn)行使用: http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run=1,2,3 &wts=20,30,50&source= <namespace>
二、 壓力測(cè)試 命令: ab –c 256 –n 100000 http://iploc.kuaibo.com/ip/weather
-c 并發(fā)數(shù) -n 總請(qǐng)求次數(shù) -t 總請(qǐng)求時(shí)間,超過(guò)5萬(wàn)次結(jié)束
服務(wù)器壓力測(cè)試參考數(shù)據(jù): 1、 CPU (nginx、PHP、MYSQL) top 2、 內(nèi)存(nginx、PHP、MYSQL) free 3、 隊(duì)列 4、 I/O 5、 網(wǎng)絡(luò)流量
兩種測(cè)試結(jié)合進(jìn)行, 壓力測(cè)試由低到高, 并且觀察服務(wù)器的資源占用情況。 在壓力測(cè)試的同時(shí), 使用性能測(cè)試工具xhprof結(jié)合起來(lái)測(cè)試, 看看瓶頸是在哪里, 什么地方比較占用資源等。
//demo
<?php
function a(){
echo 'test it'; }
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); a(); $xhprof_data = xhprof_disable();
include_once "xhprof/xhprof_lib/utils/xhprof_lib.php"; include_once "xhprof/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "sourcejoy");
//echo "ttttt<br>"; echo "http://www.test.com/xhprof/xhprof_html/index.php?run={$run_id}&source=sourcejoy";
?>
|