首页 > 代码库 > web服务器压测工具siege、ab

web服务器压测工具siege、ab

web服务器压测工具也挺多,这里只介绍我用过的这两种--siege(for linux)、ab(for windows)。

 

一、siege

1、简介:

Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多。

 

2、安装:

官方:http://www.joedog.org/
Siege下载:http://www.joedog.org/pub/siege/siege-latest.tar.gz
解压:
# tar -zxf siege-latest.tar.gz
进入解压目录:
# cd siege-latest.tar.gz/
安装:
#./configure ; make
#make install

 

 

3、参数详解:

技术分享

 

4、使用:

siege -c 100 -r 10 "https://www.baidu.com/"

-c 100表示并发模拟100个用户并发,-r 10表示重复运行10次

 

** SIEGE 3.0.8
** Preparing 100 concurrent users for battle.
The server is now under siege.. done.

Transactions: 909 hits    #完成909次处理
Availability: 90.90 %    #成功率
Elapsed time: 71.83 secs    #总共耗时
Data transferred: 0.15 MB    #总共传输数据量
Response time: 1.66 secs    #响应时间
Transaction rate: 12.65 trans/sec  #平均每秒处理数
Throughput: 0.00 MB/sec    #平均每秒传输数据量
Concurrency: 20.98    #实际最大并发数
Successful transactions: 909    #成功处理数
Failed transactions: 91    #失败处理数
Longest transaction: 63.17  #单次最长耗时
Shortest transaction: 0.02    #单次最短耗时

FILE: /var/log/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive ‘show-logfile‘ to false.

 


 

 

二、ab

1、简介

ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求

 

2、下载

http://apache.mirrors.pair.com/httpd/

或安装Apache自带

 

3、使用:

向 www.google.com 发送10个请求(-n 10) ,并每次发送10个请求(-c 10)——也就是说一次都发过去了。

 

C:\Users\admin>ab -n 10 -c 10 http://www.google.com/


This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.google.com (be patient).....done


Server Software: gws
Server Hostname: www.google.com
Server Port: 80

Document Path: /
Document Length: 390 bytes

Concurrency Level: 10
Time taken for tests: 0.274 seconds
Complete requests: 10
Failed requests: 0
Non-2xx responses: 10
Total transferred: 11330 bytes
HTML transferred: 3900 bytes
Requests per second: 36.47 [#/sec] (mean)
Time per request: 274.207 [ms] (mean)
Time per request: 27.421 [ms] (mean, across all concurrent requests)
Transfer rate: 40.35 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 24 24 0.4 24 25
Processing: 31 113 67.4 121 218
Waiting: 31 113 67.4 121 218
Total: 55 138 67.5 145 243

Percentage of the requests served within a certain time (ms)
50% 145
66% 170
75% 194
80% 218
90% 243
95% 243
98% 243
99% 243
100% 243 (longest request)

 

/*整个测试持续的时间*/

Time taken for tests:   3.234651 seconds

/*完成的请求数量*/

Complete requests:      10

/*失败的请求数量*/

Failed requests:        0

Write errors:           0

Non-2xx responses:      10

Keep-Alive requests:    10

/*整个场景中的网络传输量*/

Total transferred:      6020 bytes

/*整个场景中的HTML内容传输量*/

HTML transferred:       2300 bytes

/*大家最关心的指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值*/

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

/*大家最关心的指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值*/这个是用户平均请求等待时间。

Time per request:       3234.651 [ms] (mean)

/*这个是服务器平均请求处理时间*/

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

/*平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题*/

Transfer rate:          1.55 [Kbytes/sec] received

/*网络上消耗的时间的分解,各项数据的具体算法还不是很清楚*/

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:       20  318 926.1     30    2954

Processing:    40 2160 1462.0   3034    3154

Waiting:       40 2160 1462.0   3034    3154

Total:         60 2479 1276.4   3064    3184

 /*下面的内容为整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中 50% 的用户响应时间小于 3064 毫秒,60 % 的用户响应时间小于 3094 毫秒,最大的响应时间小于 3184 毫秒*/

Percentage of the requests served within a certain time (ms)

  50%   3064

  66%   3094

  75%   3124

  80%   3154

  90%   3184

  95%   3184

  98%   3184

  99%   3184

 100%   3184 (longest request)

由于对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数

 

 

参考:

1、http://www.cnblogs.com/yangxia-test/archive/2012/12/06/2804801.html

2、http://www.ha97.com/4663.html

 

web服务器压测工具siege、ab