使用 Siege 进行压力测试

Siege 官网:[http://www.joedog.org/](http://www.joedog.org/)

命令安装

ubuntu -> apt-get install -f siege
mac osx -> brew install siege

参数说明

SIEGE 4.0.1 Usage: siege [options] siege [options] URL siege -g URL Options:
  -V, --version             显示版本号
  -h, --help                显示帮助信息
  -C, --config              显示 Siege 的配置信息
  -v, --verbose             在屏幕上显示详细输出信息
  -q, --quiet               关闭详细信息输出
  -g, --get                 GET, pull down HTTP headers and display the transaction. Great for application debugging.
  -c, --concurrent=NUM      并发用户数量,默认为 10
  -r, --reps=NUM            重复次数
  -t, --time=NUMm           测试持续时间,默认单位为"m分钟" 可以改为 "S秒" "M分" "H时"
                            例如: --time=1H, 表示持续测试 1 小时
  -d, --delay=NUM           每次请求时的时间间隔,未指定数值则使用随机间隔
  -b, --benchmark           基准测试,每次请求中间不停顿
  -i, --internet            模拟互联网用户,每次请求中间有随时间隔
  -f, --file=FILE           指定测试 url 列表的文本文件
  -R, --rc=FILE             指定 Siege 配置文件
  -l, --log[=FILE]          指定日志输出,默认为PREFIX/var/siege.log
  -m, --mark="text"         MARK, mark the log file with a string. between .001 and NUM. (NOT COUNTED IN STATS)
  -H, --header="text"       指定请求头信息
  -A, --user-agent="text"   设置请求时的浏览器信息 User-Agent
  -T, --content-type="text" 设置请求时的 Content-Type

使用方法

siege -c 100 -v -r 100 **http://mytest.local.com** > siege.php.test.log

结果分析

** SIEGE 4.0.1 ** Preparing 100 concurrent users for battle.
The server is now under siege...
Transactions:      10000 hits               完成 10000 次请求
Availability:      100.00 %                 成功率 100%
Elapsed time:      169.57 secs              总共使用时间
Data transferred:        4.55 MB                压测过程中数据带宽使用总量(请求的数据总数)
Response time:        1.42 secs              平均响应时间
Transaction rate:      58.97 trans/sec          平均每秒完成的请求数据
Throughput:        0.03 MB/sec            每秒请求的数据流量
Concurrency:      83.97                    实际最高并发总数
Successful transactions:       10000                   成功的请求次数
Failed transactions:          0                    失败的请求次数
Longest transaction:        2.12                   所有请求操作的最长时间
Shortest transaction:        0.03                   所有请求操作的最短时间