php测试方案
一、 性能测试(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
保存并关闭,然后重启php
把xhprof_lib和xhprof_html两个目录拷贝到网站的根目录”xxx.xxxx.com/xhprof/”下,
2、使用
在需要做性能测试的地方加入
开始:
// xhprof_flags_cpu
// xhprof_flags_memory
// xhprof_flags_no_builtins 跳过内置函数
// 要设定要忽略的函数列表,可以在分析时给xhprof_enable函数 指定第二个参数[是个可选参数], 如:
xhprof_enable(xhprof_flags_memory,
array(
'ignored_functions' => array(
'call_user_func',
'call_user_func_array'
)
)
);
xhprof_enable(xhprof_flags_cpu + xhprof_flags_memory);
结束:
$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, '
echo "http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run={$runid}&source=
然后就可以根据上面的地址查看
这样就可以查看到每个函数调用所消耗的cpu、内存、执行时间等
查看单一报告:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run={$runid}&source=
查看对比报告:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run1=xxxx&run2=xxx&source=
查看汇总报告:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run=1,2,3&source=
加权汇总 :进一步假设,上述3个运特分别对应三种程序,p1.php,p2.php和p3.php ,通常以20%,30%,50%概率混合:要查看汇总报告所对应的加权平均数这些运行使用:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run=1,2,3 &wts=20,30,50&source=
二、 压力测试
命令:
ab ?c 256 ?n 100000 http://iploc.kuaibo.com/ip/weather
-c 并发数
-n 总请求次数
-t 总请求时间,超过5万次结束
服务器压力测试参考数据:
1、 cpu (nginx、php、mysql) top
2、 内存(nginx、php、mysql) free
3、 队列
4、 i/o
5、 网络流量
两种测试结合进行, 压力测试由低到高, 并且观察服务器的资源占用情况。 在压力测试的同时, 使用性能测试工具xhprof结合起来测试, 看看瓶颈是在哪里, 什么地方比较占用资源等。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号