文章目录
- 一、Siege简介
- 二、安装步骤
- 0、登录官网检查确认最新版本
- 1、下载软件包
- 2、解压软件包
- 3、编译安装
- 4、查看命令
- 5、获取命令帮助
- 三、使用说明
- 1、使用语法
- 2、参数说明
- 3、使用示例
- 1)、查看siege配置
- 2)、查看工具版本
- 3)、获取指定URL的Header信息
- 4)、并发1000测试1000
- 5)、并发100用户测试指定文件中的url
- 6)、并发100测试60秒
- 四、测试结果说明
- 五、QA
- 1、配置1000并发用户测试是报错
一、Siege简介
Siege是一个http/ftp负载测试工具和基准测试工具。它是为开发人员和管理员设计的,用于测量其应用程序在负载下的性能。它可以向服务器发送可配置数量的并发请求。Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载。
二、安装步骤
0、登录官网检查确认最新版本
登录官网siege官网查看siege软件最新版本,当前最新版本为4.1.1(截止至2021年9月1日)
1、下载软件包
点击上一步中版本链接下载。
或者直接在Linux服务器上下载。
[root@test1 opt]# wget http://download.joedog.org/siege/siege-4.1.1.tar.gz
2、解压软件包
[root@test1 local]# tar -zxvf siege-4.1.1.tar.gz
3、编译安装
[root@test1 local]# cd siege-4.1.1/
[root@test1 siege-4.1.1]# ./configure
…
--------------------------------------------------------
Configuration is complete
Run the following commands to complete the installation:
make
make install
For complete documentation: http://www.joedog.org
--------------------------------------------------------
[root@test1 siege-4.1.1]# make && make install
…
make[2]: Leaving directory `/usr/local/siege-4.1.1/html’
make[1]: Leaving directory `/usr/local/siege-4.1.1/html’
4、查看命令
[root@test1 siege-4.1.1]# which siege
/usr/local/bin/siege
5、获取命令帮助
[root@test1 siege-4.1.1]# siege --help
三、使用说明
1、使用语法
siege [参数] url
url文件就是一个文本,文本中每行是一个url。
2、参数说明
参数 | 参数说明 |
---|---|
-V, --version | 版本,打印版本号。 |
-h, --help | 帮助,打印此部分。 |
-C, --config | 配置,显示当前配置。 |
-v, --verbose | 详细,将通知打印到屏幕。 |
-q, --quiet | 安静关闭冗余并抑制输出。 |
-g, --get | 获取、下拉HTTP头并显示,适合应用程序调试 |
-p, --print | 打印,就像只获取一样,它打印整个页面。 |
-c, --concurrent=NUM | 并发用户,默认值为10 |
-r, --reps=NUM | 重复次数,运行测试的次数。 |
-t, --time=NUMm | 定时测试,其中“m”是修饰符S、m或H ; ex:–时间=1H,一小时试验。 |
-d, --delay=NUM | 时间延迟,每个请求前的随机延迟 |
-b, --benchmark | 基准测试:请求之间没有延迟。 |
-i, --internet | 互联网用户模拟,随机点击网址。 |
-f, --file=FILE | 文件,选择特定的URL文件。 |
-R, --rc=FILE | RC,指定一个siegerc文件 |
-l, --log[=FILE] | 记录到文件。如果未指定文件,则使用默认值:前缀/var/seake.log |
-m, --mark=“text” | 标记,用字符串标记日志文件, 介于.001和NUM之间(不计入统计数据) |
-H, --header=“text” | 向请求添加标头(可以是多个) |
-A, --user-agent=“text” | 在请求中设置用户代理 |
-T, --content-type=“text” | 设置请求中的内容类型 |
-j, --json-output | JSON输出,将最终统计数据作为JSON打印到标准输出 |
–no-parser | 没有解析器,请关闭HTML页面解析器 |
–no-follow | 不跟随,不跟随HTTP重定向 |
3、使用示例
1)、查看siege配置
[root@test1 ~]# siege --config
[alert] Zip encoding disabled; siege requires zlib support to enable it
CURRENT SIEGE CONFIGURATION
Mozilla/5.0 (pc-x86_64-linux-gnu) Siege/4.1.1
Edit the resource file to change the settings.
----------------------------------------------
version: 4.1.1
verbose: true
color: true
quiet: false
debug: false
protocol: HTTP/1.1
HTML parser: enabled
get method: HEAD
connection: close
concurrent users: 25
time to run: n/a
repetitions: n/a
socket timeout: 30
cache enabled: false
accept-encoding: *
delay: 0.000 sec
internet simulation: false
benchmark mode: false
failures until abort: 1024
named URL: none
URLs file: /usr/local/etc/urls.txt
thread limit: 255
logging: false
log file: /usr/local/var/log/siege.log
resource file: /root/.siege/siege.conf
timestamped output: false
comma separated output: false
allow redirects: true
allow zero byte data: true
allow chunked encoding: true
upload unique files: true
json output: false
no-follow:
- ad.doubleclick.net
- pagead2.googlesyndication.com
- ads.pubsqrd.com
- ib.adnxs.com
proxy auth:
www auth:
2)、查看工具版本
[root@test1 ~]# siege --version
[alert] Zip encoding disabled; siege requires zlib support to enable it
SIEGE 4.1.1
Copyright © 2021 by Jeffrey Fulmer, et al.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.
3)、获取指定URL的Header信息
[root@test1 ~]# siege -g http://www.baidu.com
[alert] Zip encoding disabled; siege requires zlib support to enable it
HEAD / HTTP/1.0
Host: www.baidu.com
Accept: /
Accept-Encoding: *
User-Agent: Mozilla/5.0 (pc-x86_64-linux-gnu) Siege/4.1.1
Connection: close
HTTP/1.0 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Content-Length: 277
Content-Type: text/html
Date: Thu, 09 Sep 2021 07:12:50 GMT
Etag: “575e1f6f-115”
Last-Modified: Mon, 13 Jun 2016 02:50:23 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Transactions: 1 hits
Availability: 100.00 %
Elapsed time: 0.04 secs
Data transferred: 0.00 MB
Response time: 0.04 secs
Transaction rate: 25.00 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 1.00
Successful transactions: 1
Failed transactions: 0
Longest transaction: 0.04
Shortest transaction: 0.04
4)、并发1000测试1000
[root@test1 ~]# siege -c1000 -r10000 http://192.168.0.213:8098/dist/#/index?id=a3178a9b829e7dfef4668fddc68fc5ab
5)、并发100用户测试指定文件中的url
[root@test1 tmp]# cat testurl.txt
http://192.168.0.213:8098/dist/#/index?id=a3178a9b829e7dfef4668fddc68fc5ab
http://192.168.0.213:8098/dist/#/index?id=7e77ad5dab52b8b29a5de3ed985b1535
http://192.168.0.213:8098/dist/#/index?id=40f123f28dfd968652f6a61556c986b2
[root@test1 tmp]# siege -c100 -r1000 -f testurl.txt
6)、并发100测试60秒
[root@test1 tmp]# siege -c100 -t 60S http://192.168.0.213:8098/dist/#/index?id=40f123f28dfd968652f6a61556c986b2
…
Lifting the server siege…
Transactions: 29264 hits
Availability: 100.00 %
Elapsed time: 59.70 secs
Data transferred: 295.88 MB
Response time: 0.17 secs
Transaction rate: 490.18 trans/sec
Throughput: 4.96 MB/sec
Concurrency: 85.12
Successful transactions: 29264
Failed transactions: 0
Longest transaction: 12.06
Shortest transaction: 0.00
四、测试结果说明
Transactions: 34925 hits (处理次数,本次处理了34925此请求)
Availability: 100.00 % (可用性/成功次数的百分比,比如本次100%成功)
Elapsed time: 34.83 secs (运行时间,本次总消耗34.83秒)
Data transferred: 353.18 MB (数据传送量)
Response time: 0.83 secs(响应时间)
Transaction rate: 1002.73 trans/sec (处理请求频率,每秒钟处理8.89次请求)
Throughput: 10.14 MB/sec (吞吐量,传输速度)
Concurrency: 833.76 (实际最高并发连接数)
Successful transactions: 34931(成功的传输次数)
Failed transactions: 0 (失败的传输次数)
Longest transaction: 30.86 (处理传输是所花的最长时间)
Shortest transaction: 0.01(处理传输是所花的最短时间)
五、QA
1、配置1000并发用户测试是报错
- 报错信息
- 解决方案
[root@test1 ~]# vim /root/.siege/siege.conf