简介
siege是一款HTTP/FTP负载测试和基准压测工具
Download
安装
mkdir -p /usr/local/siege/etc;mkdir -p /usr/local/siege/var
./configure --prefix=/usr/local/siege --mandir=/usr/local/man --with-ssl && { make && make install }
目录结构
/usr/local/siege/
├── bin
│ ├── bombardment
│ ├── siege
│ ├── siege2csv.pl
│ └── siege.config
├── etc
│ ├── siegerc
│ └── urls.txt
└── var
├── siege.log (配置文件开启log)
生成配置文件
./bin/siege.config -> ${HOME}/.siege/siege.conf
开启日志
logfile = /usr/local/siege/var/siege.log
logging = true
参数选项
man siege
-c, —config
打印出配置文件的详细信息 -v, --verbose
siege进入verbose模式(默认模式 yes) HTTP 状态码会显示不同颜色(默认 color = yes) -q, —quiet
siege进入silence模式 -g URL, --get=URL
查看请求 返回头文件 -c NUM, --concurrent=NUM
设置虚拟并发用户数 -r NUM, --reps=NUM|once
每个虚拟用户的运行次数 -t NUMm, --time=NUMm
每个虚拟用户的运行时间
NUM 多长时间
m 时间单位 H小时 M分钟 S秒 (大小写不敏感 NUM和m之间不能有空格) -d NUM, --delay=NUM
每个page request之间的间隔秒(默认 delay=0.5) -b, --benchmark
压测模式 在请求之间没有时间间隔 -i, --internet
在进入internet模式中调用 随机请求url -f FILE, --file=FILE
进入internet模式 从文本urls.txt中读取url(每个url一行 不同于命令行 url不需要加冒号) -R FILE, --rc=FILE
设置可选的配置文件路径 而不是默认的 -L FILE, --log=FILE
设置可选的日志文件路径 而不是默认的 -m "string", --mark="string"
在每条状态日志前面加上标示符 -H "header: value", --header="Header: value"
设置自定义请求header -A "string", --agent="string"
设置自定义请求User-agent -T "text", --content-type="text"
设置自定义请求Content-type
性能分析
man siege
Transactions: 全部的HTTP请求数 Availability: 成功建立连接的socket百分比(失败和超时外) 没有包括HTTP code 400和500(因为他们是连接失败的socket) Elapsed time: 测试的总时间 从第一个请求开始到最后一个请求结束的时间 Data transferred: 被测试服务器发送的全部数据量MB Response time: 每一个请求的平均响应时间 Transaction rate: 吞吐率 被测试服务器处理的请求数/s Throughput: 吞吐率 被测试服务器发送的数据量MB/s Concurrency: 平均的并发连接数(总请求数/Elapsed time) Successful transactions: 被测试服务器返回的成功连接数(code < ) Failed transactions: 连接失败的socket数 Longest transaction: 耗时最久的请求时间 shortest transaction: 耗时最短的请求时间
Example
1、command-line mode
./bin/siege -c 1000 -t1m “http://www.example1.com/"
2、internet mode
./bin/siege -c 1000 -t1m -i -b
urls.txt
http://www.example3.com/