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 条评论
登录 后参与评论

相关文章

来自专栏三丰SanFeng

Linux同步机制 - 基本概念(死锁,活锁,饿死,优先级反转,护航现象)

死锁(deadlock) 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态...

2289
来自专栏互联网技术栈

Dubbo作者聊 设计原则

转于自己在公司的Blog: http://pt.alibaba-inc.com/wp/experience_1301/code-detail.html

1244
来自专栏Golang语言社区

GoLang并发控制(上)

首先解释golang中的channel:channel是go中的核心部分之一,结构体简单概括就是一个ring队列+一个锁 有兴趣的同学可以去研究一下源码构建。在...

892
来自专栏小灰灰

Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构...

913
来自专栏张善友的专栏

Windows Server AppFabric Caching

这套 AppFabric Caching 比我用过的 memcached 复杂多了,MSDN有一篇文章进行介绍Introduction to Caching w...

2039
来自专栏小灰灰

Quick-Task 动态脚本支持框架之使用介绍篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/19/180719-Quick-Task-动态脚本支持框架之使用...

772
来自专栏FreeBuf

手工检测Web应用指纹的一些技巧

0x01 Web 应用技术概览 1.1 架构 大多数 web 应用可以粗略划分为三个组件(component)。 1、客户端, 大多数情况下是浏览器。 2、服务...

4716
来自专栏GopherCoder

『Go 语言学习专栏』-- 第十四期

1773
来自专栏吴裕超

js和native交互方法浅析

一、背景 最近接触公司项目,需要和原生app做交互,由此业务需求,开始了学习探索之路。 二、解决方案之WebViewJavascriptBridge  想要和a...

3018
来自专栏葡萄城控件技术团队

Winform文件下载之WebClient

最近升级了公司内部使用的一个下载小工具,主要提升了下面几点: 1. 在一些分公司的局域网中,连接不上外网 2. 服务器上的文件更新后,下载到的还是更新前的文件 ...

1885

扫码关注云+社区