免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2135 | 回复: 0

php 性能测试 [复制链接]

论坛徽章:
0
发表于 2011-12-23 02:46 |显示全部楼层

    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, ' <namespace>');
echo "http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run={$runId}&source= <namespace>";

然后就可以根据上面的地址查看

这样就可以查看到每个函数调用所消耗的CPU、内存、执行时间等

查看单一报告:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run={$runId}&source= <namespace>
查看对比报告:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run1=xxxx&run2=xxx&source=<namespace>
查看汇总报告:
http://xxx.xxx.xxx/xhprof/xhprof_html/index.php?run=1,2,3&source= <namespace>
加权汇总 :进一步假设,上述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= <namespace>


二、    压力测试
命令:
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结合起来测试, 看看瓶颈是在哪里, 什么地方比较占用资源等。

//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";

?>



 

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP