使用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)

原文地址:https://www.cnblogs.com/shenshangzz/p/8340640.html

时间: 2024-09-29 09:32:20

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

jmeter多用户并发压力测试(导入文件)

jmeter多用户并发压力测试可用CSV Data Set Config (添加--配置元件--CSV Data Set Config) Filename:  文件的位置(如果是同目录下csv文件,可不填写路径,写名称即可) Variable Names: 变量名称.多个变量用 ,  或者  ; 隔开 Recycle on EOF:文件结束后是否要循环 Stop thread on EOF(文件结束是否中止线程) File Encoding: 默认为ANSI Allow Quoated data

三种压力测试工具 http_load 和 apache ab 、 siege 压力测试(转)

在测试站点性能时找到个不错的说明式文章 From:http://blog.csdn.net/lyflower/archive/2010/09/09/5873544.aspx 到http://www.acme.com/software/http_load/ 下载http_load ,安装也很简单直接make;make instlall 就行. http_load 的标准的两个例子是: http_load -parallel 5 -fetches 1000 urls.txt http_load -r

apache的ab命令做压力测试

1. 最基本的关心两个选项 -c -n 例: ./ab -c 100 -n 10000 http://127.0.0.1/index.php -c 100 即:每次并发100个-n 10000 即: 共发送10000个请求 2. 测试结果分析 [[email protected] htdocs]$ /data1/apache/bin/ab -c 1000 -n 50000 "http://10.10.10.10/a.php "This is ApacheBench, Version 1

Apache ab工具进行压力测试

Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21 \bin)非常容易使用,ab可以直接在Web服务器本地发起测试请求,这至关重要,因为有些时候我们需要测试的仅仅是服务器的处理性能,并不想掺杂着网 络传输时间的影响.ab进行一切测试的本质都是基于HTTP的,所以可以说ab对于Web服务器软件的黑盒性能测试,获得的一切数据和计算结果,都是可以 通过HTTP来解释的. Apache附带的ab工具(本机使用的P

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

近日manager要求对项目进行压力测试,开始对jmeter进行了研究.jmeter是Apache一个开源项目,可对各种项目进行测试,甚至包括junit. 测试要求如下,多用户同时登陆web应用程序,并进行操作,查看在多用户操作下,程序的performence.恰好,jemter下有个CSV Data Set Config,它用来设定一组参数,以便在向程序发出请求时,传入参数.在进行压力测试以前,应先将操作过程记录下来.jmeter有个http prox serve,用它可以进行记录.但有个更好

windows Apache ab安装及压力测试

ab 是apachebench的缩写. ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx.lighthttp.tomcat.IIS等其它Web服务器的压力. ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存.但却会给目标服务器造成巨大的负载,其原理类似CC攻击.自己测试使用也需要注意,否则一次上太多的负载.可能造成目标服务器资源耗完,严重时甚至导

Apache如何进行模拟高并发压力测试?

利用apache,自带的ab.exe软件就可以,在cmd中,首先输入ab.exe物理地址, 然后-c 高并发数量 -n访问请求次数 请求的页面的地址, 如-c 10 -n 20,就是-c10相当于10个客户端,每个访问页面两次,总共就是-n20次

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

ab是Apache超文本传输协议(HTTP)的性能测试工具. 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求. #ab -v可以看出其基本信息 #ab -n1000 -c10 http://localhost:81/t.php 这是一个基本命令 -n1000表示总请求数为1000 -才0表示并发用户数为10 参数说明: Concurrency Level:并发用户数: Time taken for tests:请求处理花费的总时间: Co

压力测试 apache ab工具使用说明

ab工具使用说明 1 . 安裝ab工具命令 sudo apt-get install apache2-utils 2.ab命令参数说明 Usage: ab [options] [http[s]://]hostname[:port]/path Options are: //请求数 -n requests Number of requests to perform //并发数 -c concurrency Number of multiple requests to make -t timelimi