ab基准测试分析

Apache Benchmark(ab)工具是最著名的基准测试工具之一,它是默认的Apache安装的一部分,能够通过模拟对特定URL的任意数量请求来对Web服务器进行负载测试。ab工具提供以下信息:

  • 传输的总数据大小(以字节为单位)
  • Web服务器在模拟流量下每秒可以支持的请求总数
  • 完成一个请求所花费的最长时间(以毫秒为单位)
  • 完成一个请求所花费的最短时间(以毫秒为单位)

使用ab工具还可以运行很多不同的负载模拟,例如:

  • 对Web文档的模拟请求
  • 指定时间内的请求
  • 打开Keep-Alive时的请求

最重要的是,Apache Benchmark是独立于Apache Web服务器的,也就是不启动web服务器,也可以运行此工具。

1、运行Apache Benchmark

在终端里输入:

#URL路径须完整,不能只是域名
#2000个请求总数,200个并发数
ab -n 2000 -c 200 http://item.XXXXXX.com/190006142.html

运行结果如下图:

2、压力测试结果数据分析
bbgds@BBGDS-PC d:\xampp
# ab -n 2000 -c 200  http://item.XXXXXX.com/190006142.html
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking item.XXXXXX.com (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests

#服务器信息
Server Software:        nginx/1.6.0
Server Hostname:        item.XXXXXX.com
Server Port:            80

#文档信息
Document Path:          /190006142.html
Document Length:        61126 bytes

#连接信息
Concurrency Level:      200                #所进行的并发请求总数
Time taken for tests:   35.020 seconds     #运行所花费的总时间
Complete requests:      2000               #模拟的请求总数中已完成的请求总数
Failed requests:        21                 #模拟的请求总数中失败的请求总数
   (Connect: 0, Receive: 0, Length: 21, Exceptions: 0)
Total transferred:      123161978 bytes    #整个模拟的响应中传输的总数据,大小包括标头数据(单位:字节)
HTML transferred:       122251978 bytes    **#整个模拟传输的内容正文的总大小(单位:字节)**
Requests per second:    57.11 [#/sec] (mean)    #每秒支持的请求总数
Time per request:       3502.000 [ms] (mean)    #满足一个请求需要花费的总时间(单位:毫秒)
Time per request:       17.510 [ms] (mean, across all concurrent requests)    #满足所有并发请求中的一个请求需要花费的总时间(单位:毫秒)
Transfer rate:          3434.48 [Kbytes/sec] received    #每秒收到的字节总数(Kb)

#连接指标细目分类
#展现请求在每个过程状态中所需的时间。Total字段中的最小值、最大值是关键字段。
#最小值:响应一个请求所需花费的最短时间
#最大值:响应一个请求所需花费的最长时间
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        9   17  71.3     11    1212
Processing:    84 3348 1153.4   3662    7078
Waiting:       41 1983 1245.2   1913    5028
Total:         98 3365 1156.0   3676    7102

Percentage of the requests served within a certain time (ms)
  50%   3676
  66%   3757
  75%   3784
  80%   3808
  90%   4840
  95%   5083
  98%   5808
  99%   6103
 100%   7102 (longest request)

其中"HTML transferred"、"Requests per second"及"Time per request"都是关键字段。这些字段使我们能够大概了解web服务器为一个请求返回的数据量、Web服务器一秒可以处理的请求总数以及一个请求成功地收到来自Web服务器的响应所花费的总时间。 一般来说,我们的程序优化目标是降低"HTML transferred",提高"Requests per second"并且降低"Time per request"值。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

TP-LINK 远程代码执行漏洞 CVE-2017-13772 趣谈

原文地址:https://www.fidusinfosec.com/tp-link-remote-code-execution-cve-2017-13772/ ...

3286
来自专栏个人随笔

C#图解教程第一章 C#和.NET框架

1.1 在.NET之前  C#发音:see shap  1.1.1 20世纪90年代后期的Windows编程   20世纪90年代后期各语言缺点:    1.纯...

31511
来自专栏恰同学骚年

Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

  应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性。

793
来自专栏Web 开发

SAE下的Memcache使用方法

之前一直想学习Memcache,却愁于不知如何下手,对这个名词完全没有概念,同时在SAE的文档里面,也很少对于Memcache的使用教程~

660
来自专栏小李刀刀的专栏

Laravel 5.4 及 5.5 中的全新字符串辅助方法

Laravel 5.5 已经确定预计在 2017年 Laravel 欧洲大会上正式发布。这次重大升级,也带来了一些新的字符串相关的辅助方法。 以下介绍一些最近比...

3317
来自专栏SDNLAB

LINC switch系列之架构分析与源码探索

前言 LINC switch是一个由flowforwarding. org主导开发的一款纯openflow交换机,目的是发展和评估openflow协议1.2,1...

2886
来自专栏编程

正则表达式游戏的答案

两天过去了,我们才送出了四个番茄钟(其中一个还是作为礼物送给了鲁鸿驹先生,感谢鲁鸿驹的现场莅临指导 ,鲁总是VIM的fans,多年不编程的他还记得是删除一行的指...

1998
来自专栏风口上的猪的文章

.NET面试题系列[2] - .NET框架基础知识(2)

面试出现频率:虽然很重要但不怎么出现,可能会考你定义,以及程序集包括什么,然后自然的话题就跑到反射上去了。

732
来自专栏Jerry的SAP技术分享

从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator

上一篇文章 从产品展示页面谈谈Hybris的特有概念和设计结构 我们讲解了Hybris一些特有的概念以及大体架构,并且介绍了Facade层里是如何定义DTO(D...

2189
来自专栏信安之路

PHP安全开发中常见的Dos风险

近期收到某友方 SRC 发来的邮件,反馈站点中存在可被 Dos 的风险, 复测后发现确实存在此类风险。

520

扫码关注云+社区