PHP压力测试使用apache的ab工具和Linux的time命令
ab工具是apache自带的一个压力测试工具,可以在apache的安装路径下的bin目录下找到,我的环境中是在/usr/local/apache/bin/目录下;
ab 压测主要使用两个参数:
-n 请求数
-c 并发数
对于测试的结果,主要关注两个点:
Requests per second 服务器每秒接收的请求,该值越大越好
Time per request 服务器处理完每个请求所花的时间,该值越小越好
使用格式:
/usr/local/bin/ab -n1000 -c10 www.demo.com/index.php
/usr/local/bin/ab -n1000 -c10 1.2.3.123:80/index.php
如果我们需要测试本地某个php脚本的运行情况,比如说执行所花的时间,可以在脚本的开始处获取一下时间戳,然后在脚本结束的地方再获取一下时间戳,通过这两个时间戳的相减,来获得脚本大概的运行耗时(因为获取时间戳也耗时),比如说下面的例子:
<?php
function current_time(){
list($usec,$sec) = explode( " ", microtime() );
return ((float)$usec + (float)$sec);
} $start = current_time(); $i = 0;
$arr = array();
while( $i < 100000 ){
$arr[] = rand(10000,200000);
$i++;
} $end = current_time(); //echo $end - $start."s";
$spend = number_format($end - $start,3)*1000;
echo "spend ".$spend."ms\n"
?>
使用Linux命令行运行该脚本:
[root@localhost wwwroot]# php index.php
spend 44ms
[root@localhost wwwroot]# php index.php
spend 40ms
[root@localhost wwwroot]# php index.php
spend 37ms
[root@localhost wwwroot]# php index.php
spend 41ms
[root@localhost wwwroot]# php index.php
spend 41ms
因为每次花费的时间不同,可以取平均值为参考。
上面的做法地确能达到检测一个php脚本运行的时间及效率,但是有点麻烦,每次都要显式地取时间戳,然后相减。所以推荐使用Linux的time命令,可以用来统计一个命令所花费的时间,比如下例:
<?php
$i = 0;
$arr = array();
while( $i < 100000 ){
$arr[] = rand(10000,200000);
$i++;
}
?>
使用命令行来运行脚本:
[root@localhost wwwroot]# time php index.php real 0m0.070s
user 0m0.050s
sys 0m0.020s
[root@localhost wwwroot]# time php index.php real 0m0.062s
user 0m0.046s
sys 0m0.016s
在上面运行的结果中,我们只关注user的那一行时间,关于这三个时间的解释,可以参考下面的解释:
- real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
- user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。
- sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。
PHP压力测试使用apache的ab工具和Linux的time命令的更多相关文章
- Windows如何使用Apache的ab工具进行网站性能测试(Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便)
打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意 ...
- (转)使用Apache的ab工具进行压力测试
转:http://www.cnblogs.com/luckyliu/archive/2012/03/04/2379306.html Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境, ...
- 如何使用Apache的ab工具进行网站性能测试
1.打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 2.在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程 ...
- apache 的ab 工具
ab是apache 进行http服务器压力测试的一个工具.用来衡量apache 服务器的执行效率,能够检测出apache每秒能够处理的请求数. 一个使用的例子如下(windows下) ab -n -c ...
- 使用Apache的ab工具进行网站性能测试
Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便. ab 的用法是:ab [options] [http://]hostname[:port]/path 例如:ab -n ...
- 【Apache】ab工具
格式:ab [options] [http://]hostname[:port]/path -n requests Number of requests to perform //在测试会话中所执行 ...
- 压力测试(webbench、ab、siege)
在本地安装webbench,步骤如下: wget http://www.ha97.com/code/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz m ...
- [AapacheBench工具]web性能压力测试工具的应用与实践
背景:网站性能压力测试是性能调优过程中必不可少的一环.服务器负载太大而影响程序效率是很常见的事情,一个网站到底能够承受多大的用户访问量经常是我们最关心的问题.因此,只有让服务器处在高压情况下才能真正体 ...
- window安装ab压力测试并使用
ab是Apache HTTP server benchmarking tool的缩写,可以用以测试HTTP请求的服务器性能,也是业界比较流行和简单易用的一种压力测试工具包 1.下载ab工具 进入apa ...
随机推荐
- mvc、mvp和mvvm理解
MVC.MVP.MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用. 一.MVC(Model-View-Controller) MVC是比较直观的架构模式 ...
- Android中如何使用xmlns
http://blog.csdn.net/lihenair/article/details/41009711 工作中时常需要自定义控件,除了按键,draw以外,还需要对控件属性进行一些初始化的操作,比 ...
- 自己定义控件-DragButton
版权声明:本文为博主原创文章.欢迎转载,转载请注明博主和原文链接. https://blog.csdn.net/u014077888/article/details/28097273 一.描写叙述 可 ...
- Eclipse中安装springmvc插件
我网上找了很多方法,常见的两种: 方法一: 先去下载spring-framework-x.x.x.RELEASE.zip包,然后解压,后面需要配置什么,具体的笔者也记不了,哈哈哈 方法二: 打开菜单栏 ...
- MATLAB——线性神经网络
这个函数默认使用最小二乘,所以不需要训练 % example5_1.m x=-:; y=*x-; % 直线方程为 randn(); % 设置种子,便于重复执行 y=y+randn(,length(y ...
- Photoshop 基础一 安装
安装 版本介绍 学习教程 一.安装 1)注册Adobe账号,注册地址:Adobe注册 2)下载地址:Adobe下载 下载地址2:百度经验 3)安装:试用期7天的版本 二.版本介绍 1)最新版本:A ...
- Luogu2469 SDOI2010 星际竞速 费用流
传送门 发现它的本质是求一个费用最小的路径覆盖 最小路径覆盖是网络流23题中的一个比较典型的模型 所以考虑相似的建边 因为每一个点要恰好经过一次,是一个有上下界的网络流,故拆点,星球\(i\)拆成\( ...
- Vue-使用json-server快速“伪造”后台接口
JSON-Server主要的作用是搭建一台JSON服务器,测试一些业务逻辑(我之前都是采用读取文件的方式尴尬).一.安装 npm install --save json-server 前提是已经安装好 ...
- 【转】Raft 为什么是更易理解的分布式一致性算法
编者按:这是看过的Raft算法博客中比较通俗的一篇了,讲解问题的角度比较新奇,图文并茂,值得一看.原文链接:Raft 为什么是更易理解的分布式一致性算法 一致性问题可以算是分布式领域的一个圣殿级问题了 ...
- LOJ #6074. 「2017 山东一轮集训 Day6」子序列
#6074. 「2017 山东一轮集训 Day6」子序列 链接 分析: 首先设f[i][j]为到第i个点,结尾字符是j的方案数,这个j一定是从i往前走,第一个出现的j,因为这个j可以代替掉前面所有j. ...