《Siege 压测工具使用指南》

《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 参考文档

阅读 — · 全站 —
🎸 我的歌单 0 首