《Siege 压测工具使用指南》
1 简介
Siege 是一个 HTTP 压测工具,既可以针对单个 URL 做并发/重复请求,也可以从 URL 文件列表中随机选取 URL(模拟真实访问行为),并支持指定 header、cookie 与日志输出。
2 安装
从 http://download.joedog.org/siege/ 下载最新源码包:
wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
./configure
make -j`nproc` && make install -j`nproc`
3 生成配置文件
执行 siege.config 初始化用户配置:
siege.config
会在 ~/.siege/ 下生成:
~/.siege/cookies.txt:Cookie 文件~/.siege/siege.conf:主配置文件
4 常用命令
4.1 基础压测
# -c 并发数;-r 重复次数;总请求数 = 并发数 * 重复次数
siege -c 500 -b -r 10000 \
-H "Referer: http://example.com" \
-H "X-Forwarded-For: 1.2.3.4" \
-lcaptcha.log \
"http://example.com/api/verify"
注意:
-l与日志文件名(如captcha.log)之间不能有空格。
4.2 从 URL 文件随机压测
# urls.txt 每行一个 URL
siege -c 50 -i -f urls.txt
4.3 抓取单个 URL 的 header
siege -g http://example.com/ # 只拉取 HTTP 头,便于调试
siege -p http://example.com/ # 拉取完整页面
5 命令行参数详解
| 参数 | 作用 |
|---|---|
-c, --concurrent=NUM |
并发用户数,默认 10 |
-r, --reps=NUM |
重复次数 |
-t, --time=NUMm |
按时间测试,m 为修饰符(S=秒/M=分钟/H=小时),如 -t 1H |
-b, --benchmark |
基准测试模式,请求之间无延迟(delay=0) |
-d, --delay=NUM |
每个用户请求前的随机延迟秒数(1~NUM),默认 3 |
-i, --internet |
模拟真实用户,从 URL 文件随机选取请求 |
-f, --file=FILE |
指定 URL 文件 |
-g, --get |
抓取 HTTP 头并显示交互过程 |
-p, --print |
抓取完整页面 |
-l, --log[=FILE] |
输出日志,不指定文件时使用默认 PREFIX/var/siege.log |
-m, --mark="text" |
在日志中标记字符串 |
-v, --verbose |
实时输出结果 |
-q, --quiet |
静默模式 |
-H, --header="text" |
附加 header(可多个) |
-A, --user-agent="text" |
设置 User-Agent |
-T, --content-type="text" |
设置 Content-Type |
-C, --config |
显示当前配置 |
-V, --version |
显示版本 |
-R, --rc=FILE |
指定 siegerc 配置文件 |
--no-parser |
关闭 HTML 页面解析器 |
--no-follow |
不跟随 HTTP 重定向 |
6 常见问题
6.1 并发数上限 255
Siege 默认最大只能有 255 个并发,可通过修改 ~/.siege/siege.conf 中的 limit 选项调整:
# ex: limit = 1023 (default is 255)
limit = 1024
7 参考文档
阅读 —
·
全站 —