使用ab 进行并发压力测试 - 参与商 - 博客园 https://www.cnblogs.com/shenshangzz/p/8340640.html

使用ab 进行并发压力测试

 

ab全称为:apache bench。

是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

安装ab命令:

ubuntu:

sudo apt-get install apache2-utils

centos:

yum install apr-util

# 安装依赖 yum-utils中的yumdownload 工具
# 如果没有找到 yumdownload 命令可以
yum install yum-utils

使用:

简单使用说明
1. 最基本的关心两个选项 -c -n
例: ab -n 1000 -c 100 http://www.baidu.com/

-n 1000 即: 共发送1000个请求
-c 100 即:每次并发100个

测试结果:

命令:ab -n 1000 -c 1000 http://www.test.net/switch/get

This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.test.net(be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests Server Software: nginx/1.10.2
Server Hostname: www.test.net
Server Port: 80 Document Path: /switch/get
Document Length: 85 bytes Concurrency Level: 1000
Time taken for tests: 2.296 seconds
Complete requests: 1000
Failed requests: 170
(Connect: 0, Receive: 0, Length: 170, Exceptions: 0)
Non-2xx responses: 170
Total transferred: 496990 bytes
HTML transferred: 103360 bytes
Requests per second: 435.62 [#/sec] (mean)
Time per request: 2295.555 [ms] (mean)
Time per request: 2.296 [ms] (mean, across all concurrent requests)
Transfer rate: 211.43 [Kbytes/sec] received Connection Times (ms)
min mean[+/-sd] median max
Connect: 15 132 47.7 145 201
Processing: 89 428 225.7 382 2121
Waiting: 85 358 223.0 293 2121
Total: 198 559 233.0 512 2286 Percentage of the requests served within a certain time (ms)
50% 512
66% 603
75% 697
80% 751
90% 850
95% 910
98% 935
99% 1243
100% 2286 (longest request)

结果分析:

服务器信息:

  采用nginx服务器,域名是www.test.net,端口号80端口。

Server Software:        nginx/1.10.2
Server Hostname: www.test.net
Server Port: 80

文档信息:

  文档路径/switch/get,文档长度85字节(http响应的正文长度)

Document Path:          /switch/get
Document Length: 85 bytes

重要指标:

  Concurrency Level: 1000  // 1000个并发请求

  Time taken for tests: 2.296 seconds  // 整个测试持续时间

  Complete requests: 1000  // 完成了1000个请求

  Failed requests: 170 (Connect: 0, Receive: 0, Length: 170, Exceptions: 0)  // 失败的请求数170

  Non-2xx responses: 170  // 170个不是2开头的响应码,比如缓存的304

  Total transferred: 496990 bytes  // 整个场景中的网络传输量

  HTML transferred: 103360 bytes  // 整个场景中的HTML内容传输量

  Requests per second: 435.62 [#/sec] (mean)

  // 吞吐率(大家最关心的指标之一)

  服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

  记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

  a、吞吐率和并发用户数相关

  b、不同的并发用户数下,吞吐率一般是不同的

  计算公式:总请求数/处理完成这些请求数所花费的时间,即

  Request per second=Complete requests/Time taken for tests

  必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。

  Time per request: 2295.555 [ms] (mean)

  // 用户平均请求等待时间,大家最关心的指标之二

  计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数)

  Time per request: 2.296 [ms] (mean, across all concurrent requests)

  // 服务器平均请求处理时间,大家最关心的指标之三

  计算公式:处理完成所有请求数所花费的时间/总请求数

  Transfer rate: 211.43 [Kbytes/sec] received  // 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

Concurrency Level:      1000
Time taken for tests: 2.296 seconds
Complete requests: 1000
Failed requests: 170
(Connect: 0, Receive: 0, Length: 170, Exceptions: 0)
Non-2xx responses: 170
Total transferred: 496990 bytes
HTML transferred: 103360 bytes
Requests per second: 435.62 [#/sec] (mean)
Time per request: 2295.555 [ms] (mean)
Time per request: 2.296 [ms] (mean, across all concurrent requests)
Transfer rate: 211.43 [Kbytes/sec] received

网络上消耗的时间的分解:

Connection Times (ms)
min mean[+/-sd] median max
Connect: 15 132 47.7 145 201
Processing: 89 428 225.7 382 2121
Waiting: 85 358 223.0 293 2121
Total: 198 559 233.0 512 2286

每个请求处理时间的分布情况,50%的处理时间在512ms内,66%的处理时间在603ms内...,重要的是看90%的处理时间:

Percentage of the requests served within a certain time (ms)
50% 512
66% 603
75% 697
80% 751
90% 850
95% 910
98% 935
99% 1243
100% 2286 (longest request)

Download - The Apache Portable Runtime Project http://apr.apache.org/download.cgi

使用ab 进行并发压力测试的更多相关文章

  1. apache的ab命令做压力测试

    1. 最基本的关心两个选项 -c -n 例: ./ab -c 100 -n 10000 http://127.0.0.1/index.php -c 100 即:每次并发100个-n 10000 即: ...

  2. windows Apache ab安装及压力测试

    一:安装 ab是Apache自带的网站压力测试工具.使用起来非常的简单和方便.不仅仅是可以Apache服务器进行网站访问压力测试,还可以对其他类型的服务器进行压力测试.比如nginx,tomcat,I ...

  3. ab工具进行压力测试

    简介与安装 ab:Apache Benchmark,只要我们安装了Apache,就能够在Apache的安装目录中找到它. yum | apt 安装的Apache  ab的目录一般为/usr/bin 也 ...

  4. (转)使用Apache的ab工具进行压力测试

    转:http://www.cnblogs.com/luckyliu/archive/2012/03/04/2379306.html Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境, ...

  5. AB(ApacheBench)工具 -- 压力测试

    服务器负载太大而影响程序效率也是很常见的,Apache服务器自带有一个叫AB(ApacheBench)的工具,可以对服务器进行负载测试 同时美多商城的秒杀功能也会被高负载影响,从而导致超卖现象 安装x ...

  6. 用jmeter进行多用户并发压力测试 [转]

    近日manager要求对项目进行压力测试,开始对jmeter进行了研究.jmeter是Apache一个开源项目,可对各种项目进行测试,甚至包括junit. 测试要求如下,多用户同时登陆web应用程序, ...

  7. 用jmeter进行多用户并发压力测试

    测试要求如下,多用户同时登陆web应用程序,并进行操作,查看在多用户操作下,程序的performence.恰好,jemter下有个CSV Data Set Config,它用来设定一组参数,以便在向程 ...

  8. Apache服务器下使用 ab 命令进行压力测试

    ab是Apache超文本传输协议(HTTP)的性能测试工具. 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求. #ab -v可以看出其基本信息 ...

  9. 高并发压力测试工具Locust(蝗虫)

    What is Locust? Locust is an easy-to-use, distributed, user load testing tool. It is intended for lo ...

随机推荐

  1. CSS3制作漂亮的照片墙

    CSS3可以做动画大家肯定都是耳熟能详的了,但是大家有木有巧妙的利用这一个功能来制作一款漂亮的照片墙呢? 那么今天我们就利用CSS3动画这一特性来一起制作漂亮的照片墙吧! 第一部分:HTML 这里我们 ...

  2. centOS安装Mysql指南

    centOS安装Mysql指南 说明:使用操作系统centOS6.4 32位系统:mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz; 一.准备 下载mysql ...

  3. jquery的上传控件uploadly,每行都有一个这样的控件对id选择器的使用

    1.先看看预览图 这个是我的页面,其中如果我没点击添加一行的时候,会把本来有的数据进行循环出来,这个时候每个记录都必须有个上传图片的按钮,但是jquery的uploadly这个控件只是锁定id的,至少 ...

  4. C++ 实现设计模式之观察者模式

    1. 什么是观察者模式? 观察者模式(有时又被称为发布-订阅Subscribe>模式.模型-视图View>模式.源-收听者Listener>模式或从属者模式)是软件设计模式的一种.在 ...

  5. sublime text2+Ctags+Cscope替代Source Insight

    说明:以Windows系统下查看C++代码为例.因为Source Insight(以下简称SI)是收费软件,且界面丑陋,所以考虑其替代方案,发现Sublime Text3(以下简称ST3) + Cta ...

  6. asp.net微信支付发起页面jsapi.aspx

    jsapi.aspx 后台核心代码 //创建支付应答对象 RequestHandler packageReqHandler = new RequestHandler(Context); //初始化 p ...

  7. 每日英语:Pediatricians Set Limits on Screen Time

    Parents should ban electronic media during mealtimes and after bedtime as part of a comprehensive 'f ...

  8. ubuntu 14.04 server 能ping通,但不能ssh

    ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,我们可以很方便的用ssh链接工具连接远程服务器进行相关操作,但是在享受这种方便的同时我们需要进行一些配置. 首先我们需要在 ...

  9. 洛谷 P2473 [SCOI2008]奖励关 解题报告

    P2473 [SCOI2008]奖励关 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出\(k\)次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝 ...

  10. Android -- service的开启方式, start开启和绑定开启服务,调用服务的的方法, aidl调用远程服务

    1. 概述 bindService() 绑定服务  可以得到服务的代理人对象,间接调用服务里面的方法. 绑定服务: 间接调用服务里面的方法.           如果调用者activity被销毁了, ...