简介
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 < 400) 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/