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命令的更多相关文章

  1. Windows如何使用Apache的ab工具进行网站性能测试(Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便)

    打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意 ...

  2. (转)使用Apache的ab工具进行压力测试

    转:http://www.cnblogs.com/luckyliu/archive/2012/03/04/2379306.html Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境, ...

  3. 如何使用Apache的ab工具进行网站性能测试

    1.打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 2.在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程 ...

  4. apache 的ab 工具

    ab是apache 进行http服务器压力测试的一个工具.用来衡量apache 服务器的执行效率,能够检测出apache每秒能够处理的请求数. 一个使用的例子如下(windows下) ab -n -c ...

  5. 使用Apache的ab工具进行网站性能测试

    Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便. ab 的用法是:ab [options] [http://]hostname[:port]/path 例如:ab -n ...

  6. 【Apache】ab工具

    格式:ab  [options] [http://]hostname[:port]/path -n requests Number of requests to perform //在测试会话中所执行 ...

  7. 压力测试(webbench、ab、siege)

    在本地安装webbench,步骤如下: wget http://www.ha97.com/code/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz m ...

  8. [AapacheBench工具]web性能压力测试工具的应用与实践

    背景:网站性能压力测试是性能调优过程中必不可少的一环.服务器负载太大而影响程序效率是很常见的事情,一个网站到底能够承受多大的用户访问量经常是我们最关心的问题.因此,只有让服务器处在高压情况下才能真正体 ...

  9. window安装ab压力测试并使用

    ab是Apache HTTP server benchmarking tool的缩写,可以用以测试HTTP请求的服务器性能,也是业界比较流行和简单易用的一种压力测试工具包 1.下载ab工具 进入apa ...

随机推荐

  1. 痞子衡嵌入式:如果你正在量产i.MX RT产品,不妨试试这款神器RT-Flash

    -- RT产品落满地,客户工厂生产急; 痞子衡出新神器,从此量产不费力! 恩智浦半导体2017年10月正式发布了业内首款跨界处理器-i.MX RT系列,超强的性能.超高的性价比使得i.MX RT系列火 ...

  2. mysql索引优化-order/group

    为排序使用索引 KEY a_b_c (a,b,c) order by 能使用索引最左前缀 -order by a -order by a,b -order by a,b,c -order by a d ...

  3. javascript获取指定区间范围随机数的方法

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code //获取指定区间范围随机数,包括lowerValue和upperValue funct ...

  4. M100 (0)开发

    [SDCC 2015现场]大疆Paul Yang:多旋翼飞行器的未来就是机器人的未来 http://www.csdn.net/article/2015-11-19/2826268 开发官网 https ...

  5. FFMPEG详细参数

    这几天做视频相关的东西,找到了这款比较牛掰的工具FFmpeg Howto Table of Contents * Generic Syntax * Main Options * Encoding : ...

  6. 20145236《网络对抗》Exp8 WEB基础实践

    20145236<网路对抗>Exp8 WEB基础实践 一.基础问题回答 什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框. ...

  7. Zookeeper简介与集群搭建

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  8. PAT A1112 Stucked Keyboard (20 分)——字符串

    On a broken keyboard, some of the keys are always stucked. So when you type some sentences, the char ...

  9. python基础学习第一天

    def用法 函数定义的基本格式如下: def function(params):     somthing     return values 说明:return语句可选,出现return语句表示函数 ...

  10. linux安装jdk与配置-centos7版本

    1.Linux安裝jdk 1.如果電腦沒有wget命令的,先使用yum安裝wget命令. eg: yum install wget 2.安裝好后就可以直接使用wget命令去下載jdk. 附:打開官網連 ...