0%

使用Siege压力测试Web服务器

官方网站:http://www.joedog.org/
Siege是一款高性能的Http压力测试工具。
Siege支持身份验证、cookies、http、https和ftp协议。

yum安装

1
2
yum install epel-release
yum install siege

源码安装

1
2
3
4
5
6
yum groupinstall 'Development Tools'
wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
cat /etc/siege/siegerc |egrep -v "^$|#"

verbose = true
color = on
quiet = false
show-logfile = true
logging = false
logfile = ${HOME}/siege.log
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
delay = 0.5
internet = false
benchmark = false
accept-encoding = gzip;deflate
url-escaping = true
unique = true

注意:siege默认只支持255个并发数,可以自己自定义,修改limit数值。

命令参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-V, --version             打印版本号
-h, --help 打印帮助信息
-C, --config 打印当前配置信息
-g, --get 拉取http头信息
-p, --print 打印整个页面的内容
-c, --concurrent=NUM 并发用户数量,默认10个
-r, --reps=NUM 运行次数
-d, --delay=NUM 随机时间延迟(秒)
-b, --benchmark 请求没有延迟
-i, --internet 模拟网络用户随机点击URL
-f, --file=FILE 选择指定的URL文件
-R, --rc=FILE 指定siegerc文件
-l, --log[=FILE] 日志文件,默认是 PREFIX/var/siege.log
-H, --header="text" 给请求添加头,支持多个
-A, --user-agent="text" 给请求设置User-Agent
-T, --content-type="text" 给请求设置Content-Type

性能参数

1
2
3
4
5
6
7
8
9
10
11
12
13
Transactions				命中次数
Availability 命中率
Elapsed time 整个压测花费的时间,从第一个开始到最后一个结束
Data transferred 整个压测数据传输的总和
Response time 响应时间是响应每个模拟用户请求所花费的平均时间
Transaction rate 事务速率是服务器每秒能够处理的平均事务数. 简而言之:事务除以经过的时间。
Throughput 吞吐量是从服务器到所有模拟用户每秒传输的平均字节数
Concurrency 并发是同时连接的平均数,这是一个随服务器性能下降而上升的数字。
Successful transactions 成功事务次数
Failed transactions 失败事务次数
Longest transaction 最长事务时间
Shortest transaction 最短事务时间

例子

1
2
3
siege example.com

siege -f /etc/siege/urls.txt