PHPstudy用Apache的ab工具测试实例详解

PHPstudy自带的ab压力测试

ab.exe是apache自带的网站压力测试工具,能够测试网站在一定时间内的发生高并发时的反应。

使用Apache的ab.exe【以PHPstudy的Apache为例】

1.使用命令行工具,进入apache的bin文件夹

cd D:\phpStudy\PHPTutorial\Apache\bin

2.模拟并发级别为100,请求数为1000个的api数据请求数量测试

注意:若报“ab.exe: invalid URL”错误,是因为请求地址没有加上‘/’。
PHPstudy用Apache的ab工具测试实例详解

Server Software:        nginx  # 表示被测试的Web服务器软件名称
Server Hostname:        textlaravel.cc  # 表示请求的URL主机名
Server Port:            80  # 表示被测试的Web服务器软件的监听端口

Document Path:          /goodsstart/    # 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型
Document Length:        21 bytes   # 表示HTTP响应数据的正文长度

Concurrency Level:      1  # 表示并发用户数,这是我们设置的参数之一
Time taken for tests:   8.743 seconds   # 所有这些请求处理完成所花费的时间
Complete requests:      1   # 完成请求数
Failed requests:        0   # 失败请求数
Total transferred:      174 bytes  # 网络总传输量
HTML transferred:       21 bytes  # HTML内容传输量 
Requests per second:    0.11 [#/sec] (mean)   # 吞吐量-每秒请求数
Time per request:       8743.356 [ms] (mean)  # 服务器收到请求,响应页面要花费的时间
Time per request:       8743.356 [ms] (mean, across all concurrent requests)  # 并发的每个请求平均消耗时间 
Transfer rate:          0.02 [Kbytes/sec] received  # 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

# 网络上消耗的时间的分解: 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    1   0.0      1       1
Processing:  8742 8742   0.0   8742    8742
Waiting:     8742 8742   0.0   8742    8742
Total:       8743 8743   0.0   8743    8743

PHPstudy用Apache的ab工具测试实例详解
PHPstudy用Apache的ab工具测试实例详解
PHPstudy用Apache的ab工具测试实例详解

结论:

一个公式可以表示:

响应时间=网络响应时间+应用程序响应时间。标准可参考国外的3/5/10原则:

(1)在3秒钟之内,页面给予用户响应并有所显示,可认为是“很不错的”;
(2)在3~5秒钟内,页面给予用户响应并有所显示,可认为是“好的”;
(3)在5~10秒钟内,页面给予用户响应并有所显示,可认为是“勉强接受的”;
(4)超过10秒就让人有点不耐烦了,用户很可能不会继续等待下去;

一个测试网站在你预估正常情况下的请求数与并发量的模拟测试,

结果如果80%的请求完成率在3秒以内,就代表访问页面的性能为优秀;

结果如果80%的请求完成率在5秒以内,就代表访问页面的性能为良好;

结果如果80%的请求完成率在10秒以内,就代表访问页面的性能为中;

结果如果80%的请求完成率在10秒以上,就代表访问页面的性能为差。

ab命令原理

Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。

Apache附带的ab工具(使用的PHP环境是WAMP集成环境,
ab工具位于D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用。

ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,因此是某些DDOS攻击之必备良药,老少皆宜。

自己使用也须谨慎。否则一次上太多的负载,造成目标服务器直接因内存耗光死机,而不得不硬重启,得不偿失。

在带宽不足的情况下,最好是本机进行测试,建议使用内网的另一台或者多台服务器通过内网进行测试,这样得出的数据,准确度会高很多。远程对web服务器进行压力测试,往往效果不理想(因为网络延时过大或带宽不足)

-n发出800个请求,-c模拟800并发

键入命令: 
ab -n 800 -c 800 http://192.168.0.10/
(-n发出800个请求,-c模拟800并发,相当800人同时访问,后面是测试url)

在60秒内发请求,一次100个请求

ab -t 60 -c 100 http://192.168.0.10/
在60秒内发请求,一次100个请求。 
上一篇:Mysql快速安装(phpstudy)


下一篇:如何使用server2003 搭建asp 和PHP 网站