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=227bytes*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性能测试结果的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Apache AB性能测试工具使用教程

    服务器负载太大而影响程序效率是很常见的,Apache服务器自带有一个叫ab(ApacheBench)的工具,在bin目录下.ab专门用于HTTP Server的benchmark testing,可以同时模拟多个并发请求,使用这个轻巧的工具我们可以对服务器进行负载测试. 今天在公司也用它作一些测试,现在整理了下它的一些东西分享下. 首先我们要得到Apache服务器的目录下bin的路径,我电脑中的路径是D:\wamp\bin\apache\Apache2.2.21\bin,打开cmd,转到这个目录

  • apache性能测试工具ab使用详解

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_load.webbench.siege.今天我们专门来介绍ab. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如nginx.tomcat.IIS等. 下面我们开始介绍有关ab命令的使用: 1.ab的原理

  • 使用Apache ab进行http性能测试

    Mac自带了Apache环境 打开"终端(terminal)",输入 sudo apachectl -v,(可能需要输入机器秘密).如下显示Apache的版本 接着输入 sudo apachectl start,这样Apache就启动了.打开Safari浏览器地址栏输入 "http://localhost",可以看到内容为"It works!"的页面.其位于"/Library(资源库)/WebServer/Documents/"

  • Apache下分析ab性能测试结果

    一直以来我都是用Loadrunner去做性能测试.Loadrunner实际上是一个很重的性能测试工具.他的功能很全面,是一把很好的牛刀. 如果我们只是需要对一个页面做简单的性能测试,使用Loadruner这把牛刀就不是一个很好的选择了. 所以就找了把小刀--ab来试试.这把小刀真的是轻巧又锋利,在这里就记录一下对ab测试过程中的一些自己的理解,供大家参考. 我们就拿百度首页来祭刀吧.首先你得有一把刀,也就是安装好Apache,网上教程一大堆就不复述了,本文使用MacBook自带的ab命令进行测试

  • Apache下通过shell脚本提交网站404死链的方法

    网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链(协议死链.404页面)进行提交,可快速删除死链,帮助网站SEO优化.在提交死链的文件中逐个手动填写死链的话太麻烦,工作中我们提倡复杂自动化,所以本文我们一起交流分享Apache服务中通过shell脚本整理网站死链,便于我们提交. . 1.配置Apache记录搜索引擎 Apache是目前网站建设最为主

  • 用ISAPI_Rewrite让IIS也支持如Apache下.htaccess的URL重写

    前些日子用Linux做服务器写了一些东西,发现Apache下的.htaccess真是个好东西!不仅能实现URL真重写,还能实现假重写.真重写可以有效降低代码量与服务器资源消耗量,伪重写可以有效减少服务器的静态文件体积,节约了空间,真是不错!其实htaccess的功能远不只如此. 言归正传,那么IIS下能不能也实现htaccess这样激动人心的功能呢?ASP.NET2.0这个东东不是服务器级的,不能胜任重写这个重任,那么只有交给ISAPI了,在网上搜索,还居然真有公司(组织)开发了这种东东!不可思

  • 基于Apache组件分析对象池原理的实现案例分析

    目录 一.设计与原理 1.基础案例 2.接口设计 1.1 PooledObjectFactory 接口 1.2 ObjectPool 接口 1.3 PooledObject 接口 3.运行原理 二.构造分析 1.对象池 2.双端队列 三.对象管理 1.添加对象 2.借用对象 3.归还对象 4.对象状态 四.Redis应用 1.配置管理 2.源码分析 2.1 配置转换 2.2 对象池构造 2.3 对象管理 五.参考源码 池塘里养:Object: 一.设计与原理 1.基础案例 首先看一个基于comm

  • apache下ab.exe使用介绍

    自己在cmd中写了半天的路径也没有写对.最后网上的一个哥们告诉我说没有共同语言了...毛线啊 差距确实很大!大能猫死panda早晚干掉你,叫你丫整天嘲讽我! 比如我的ab.exe在D盘的wamp文件夹下apache文件夹下bin文件夹下.那么在cmd中可以这么写:"D:\wamp\apache\bin\ab.exe" 还有一种更加简单的方式.而且因为这种方式我被能猫又一次嘲讽!大家知道什么事资源管理器吗? 不懂的去百度下!说白了资源管理器就是我的电脑!没错你没有听错就是我的电脑!只要9

  • Linux下apache日志分析与状态查看方法

    假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] "GET /Public/Css/index.css HTTP/1.1″ 304 – "http://www.a.cn/common/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)" 问题1:在apachelog中找出访问次数最多的1

  • apache下.htaccess的功能及写法

    - .htaccess 文件(或者"分布式配置文件"提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.管理员可以通过Apache的AllowOverride指令来设置. - 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令. - .htaccess必须以ASCII模式上传,最好将其权限设置为644. 错误文档的定位 常用的客户端请求错误返回代码: 401 Authori

  • PHP5在Apache下的两种模式的安装

    PHP 5.0.0 和PHP 4.0.38 于2004年7月13日同时发布,这是一个值得我们PHP爱好者的一大喜讯.期盼已久的PHP5终于出来了,我们可以更进一步的享受PHP新的功能和使用开发的乐趣. 我也在第一时间用上了PHP5,下面简要介绍一下我的安装过程(只讲述apache服务器下的安装),与喜爱PHP的朋友分享. 其实,PHP5的安装过程也没有什么新意,与PHP4差不多. 一.CGI模式 1.解压php-5.0.0-Win32.zip到x:\php,重命名php.ini-dist为php

  • Apache下error.log文件太大的处理方法

    清除error.log.access.log并限制Apache日志文件大小的方法 有个客户反映vps网站打不开,登录系统检查下,客户是win2003系统,发现放置网站文件的D盘已被占满,可用空间为0KB,进去发现客户Apache服务器的错误日志error.log非常的大,造成D盘被爆满. 在网上搜了下相应的资料,并按照如下步骤做了一遍,网站恢复正常 第一步:停止Apache服务的所有进程,删除 Apache2/logs/目录下的 error.log.access.log文件 第二步:打开 Apa

随机推荐