Apache ab性能测试结果分析
一直以来我都是用Loadrunner去做性能测试。Loadrunner实际上是一个很重的性能测试工具。他的功能很全面,是一把很好的牛刀。
如果我们只是需要对一个页面做简单的性能测试,使用Loadruner这把牛刀就不是一个很好的选择了。
所以就找了把小刀--ab来试试。这把小刀真的是轻巧又锋利,在这里就记录一下对ab测试过程中的一些自己的理解,供大家参考。
我们就拿百度首页来祭刀吧。首先你得有一把刀,也就是安装好Apache,网上教程一大堆就不复述了,本文使用MacBook自带的ab命令进行测试。
测试场景:模拟10个用户,对百度首页发起总共100次请求。
测试命令: ab -n 100 -c 10 https://www.baidu.com/index.html
本文主要针对ab的测试报告进行解析,有关ab的使用方法改天再新开贴交流。
测试报告:
下面来逐行解释我的理解,以下注释部分有查阅网上资料,但所写内容均为自己理解之后手打内容,希望加入自己的理解之后能让读者更容易理解。
bogon:~ tang$ ab -n 100 -c 10 https://www.baidu.com/index.html
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
//以上为apache的版本信息,与本次测试无关
Benchmarking www.baidu.com (be patient).....done
//以上内容显示测试完成度,本次测试发起请求数量较少,完成较快,无中间过程显示。在请求数量很多时会分行显示当前完成数量。
Server Software: bfe/1.0.8.14 //被测试的服务器所用的软件信息,这里使用的是百度自己开发的反向代理Baidu Front End,类似nginx。
Server Hostname: www.baidu.com //被测主机名
Server Port: 443 //被测主机的服务端口号,一般http请求的默认端口号是80,https默认使用443端口
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128 //加密协议
Document Path: /index.html //请求的具体文件
Document Length: 227 bytes //请求的文件index.html大小
Concurrency Level: 10 //并发级别,也就是并发数,请求中-c参数指定的数量
Time taken for tests: 1.093 seconds //本次测试总共花费的时间
Complete requests: 100 //本次测试总共发起的请求数量
Failed requests: 0 //失败的请求数量。因网络原因或服务器性能原因,发起的请求并不一定全部成功,通过该数值和Complete requests相除可以计算请求的失败率,作为测试结果的重要参考。
Total transferred: 103314 bytes //总共传输的数据量,指的是ab从被测服务器接收到的总数据量,包括index.html的文本内容和请求头信息。
HTML transferred: 22700 bytes //从服务器接收到的index.html文件的总大小,等于Document Length*Complete requests=227 bytes*100=22700 bytes
Requests per second: 91.50 [#/sec] (mean) //平均(mean)每秒完成的请求数:QPS,这是一个平均值,等于Complete requests/Time taken for tests=100/1.093=91.50
Time per request: 109.287 [ms] (mean) //从用户角度看,完成一个请求所需要的时间(因用户数量不止一个,服务器完成10个请求,平均每个用户才接收到一个完整的返回,所以该值是下一项数值的10倍。)
Time per request: 10.929 [ms] (mean, across all concurrent requests)// 服务器完成一个请求的时间。
Transfer rate: 92.32 [Kbytes/sec] received //网络传输速度。对于大文件的请求测试,这个值很容易成为系统瓶颈所在。要确定该值是不是瓶颈,需要了解客户端和被测服务器之间的网络情况,包括网络带宽和网卡速度等信息。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 47 74 12.9 74 106
Processing: 9 32 20.2 32 106
Waiting: 9 29 19.1 27 98
Total: 66 106 20.8 106 195
//这几行组成的表格主要是针对响应时间也就是第一个Time per request进行细分和统计。一个请求的响应时间可以分成网络链接(Connect),系统处理(Processing)和等待(Waiting)三个部分。表中min表示最小值; mean表示平均值;[+/-sd]表示标准差(Standard Deviation) ,也称均方差(mean square error),这个概念在中学的数学课上学过,表示数据的离散程度,数值越大表示数据越分散,系统响应时间越不稳定。 median表示中位数; max当然就是表示最大值了。
//需要注意的是表中的Total并不等于前三行数据相加,因为前三行的数据并不是在同一个请求中采集到的,可能某个请求的网络延迟最短,但是系统处理时间又是最长的呢。所以Total是从整个请求所需要的时间的角度来统计的。这里可以看到最慢的一个请求花费了195ms,这个数据可以在下面的表中得到验证。
Percentage of the requests served within a certain time (ms)
50% 106
66% 109
75% 111
80% 114
90% 118
95% 154
98% 176
99% 195
100% 195 (longest request)
//这个表第一行表示有50%的请求都是在106ms内完成的,可以看到这个值是比较接近平均系统响应时间(第一个Time per request: 109.287 [ms] (mean) )
以此类推,90%的请求是小于等于118ms的。刚才我们看到响应时间最长的那个请求是195ms,那么显然所有请求(100%)的时间都是小于等于195毫秒的,也就是表中最后一行的数据肯定是时间最长的那个请求(longest request)。
Apache ab性能测试结果分析相关推荐
- Apache AB 性能测试
上篇介绍了jmeter性能测试工具,本文介绍一个更加简单的测试工具 Apache AB性能测试; 还是使用上文的测试链接http://localhost:8111/index/hello?name=w ...
- 性能/压力测试工具Apache ab修改:按时间进行性能/压力测试
需求: 在对Nginx module 采用Aapche ab进行性能和压力测试的过程中发现: 1. 对于不同的并发线程,相同的请求数,性能/压测所需要的时间变化比较大: 2. 对于高并发的情况下,千万 ...
- 开源性能测试工具 - Apache ab 介绍
开源性能测试工具 - Apache ab 介绍 简介 ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可 ...
- 源码安装Apache(ab性能测试)
简介 apache ab是apachebench命令的缩写,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,它既可以用来测试apache的负载压 ...
- apache ab test使用 单独安装ab和htpasswd
apache ab test使用 apache ab test使用 单独安装ab和htpasswd 转载自: http://www.cnblogs.com/super-d2/p/3831155.htm ...
- 利用Apache ab以及GNUPlot来进行Web测试
最近写了几个测试脚本,希望要观察使用PUT方式上传文件和使用POST方式上传文件,两者效率的差别. 分别是: put_client.php 模拟客户端发送PUT请求 put_serv ...
- apache ab测试介绍
apache ab测试介绍 安装ab命令 环境为ubuntu16.04.2 LTS,安装的命令为: sudo apt-get install apache2-utils 使用说明 格式为:ab [op ...
- 软件测试性能测试结果,软件性能测试结果分析工具的研究与设计
摘要: 随着软件行业的发展,针对软件系统尤其是Web应用系统的性能测试技术已经成为了软件测试领域的热点.虽然许多测试工具对性能测试提供了自动化支持,但性能测试的执行过程仍具有极高的专业性和复杂度,这一 ...
- apache ab压力测试报错apr_socket_recv
apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104)) apache 自带的ab工具测试,当并发量达到1000多的时候报错如下 ...
最新文章
- 10门必看的机器学习免费课程
- Axios——Axios封装DEMO
- centos 6.5 x64编译有python的vim7.4
- Linux工作笔记-使用find和grep检索文件或子文件中是否包含指定字符串
- #20175201张驰 实验三 敏捷开发与XP实践
- codeigniter 辅助函数 - 敏感词过滤
- 2018 Multi-University Training Contest 4 Problem E. Matrix from Arrays 【打表+二维前缀和】
- php检测是目录还是文件,php检测文件目录大小类
- HTML知识积累及实践(五) - 表单元素
- mybatis 原理_了解Mybatis的工作原理吗
- 8. JavaScript HTML DOM 事件
- 11月安全回顾:你造吗?短信验证码未必可靠
- PDFlib+PDI图像和超文本元素提供了许多有用的功能
- CTF [网络安全实验室] [脚本关]
- win10桌面简洁化(自定义鼠标右键菜单)
- Android 高德地图搜索功能相关
- 关于应用服务器和数据库服务器的区别浅谈
- 计算机win键在哪,Windows键是哪个?电脑上的Win键在哪里? [图片和文字]
- 使用python调整图片大小
- Git实用技巧36招
热门文章
- 远山启:用数学照亮人性与自由
- 2020-01-01T00:00:00.000000Z 日期格式转换
- 洛谷P4233 射命丸文的笔记 分治NTT+竞赛图
- mt5虚拟服务器,mt5云服务器
- JavaScript之Three.js
- web应用票据打印实现(四)
- 给你一本武林秘籍,和KeeWiDB一起登顶高性能
- 使用百度云加速防apache的ab测试ddos攻击
- RuntimeError: CUDA out of memory. Tried to allocate 1.54 GiB...
- 1.NR中PointA、Offsettocarrier、RIV等计算