原创

[Linux]siege 一个web压力测试工具安装使用

前言

最近心血来潮,想做一个压力测试,并非对typecho没有信心,我相信我的站点,能承受100的并发,加上缓存,(应该能上10K的并发了,实际上现在是受限于带宽,不过这个博客只是个人学习,生活记录的一点小事情,也无所谓了)还没试过,就想试下。 找到了siege这个工具,接下来就来研究下,怎么使用。

安装

[root]# wget http://download.joedog.org/siege/siege-4.0.7.tar.gz
[root]# tar -zxvf siege-4.0.7.tar.gz

如果需要使用OPENSSL支持HTTPS的,需要执行下面的步骤: 先找到openssl的安装路径,记录下来/usr/bin/openssl

[root]# whereis openssl
openssl: /usr/bin/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz

如果没有安装openssl,请先安装,本篇不介绍openssl的安装方式,点这里跳转到openssl.org

进入到siege-4.0.7目录。

[root]# cd siege-4.0.7
[root]# ./configure -prefix=/bin/siege-4.0.7/ -with-ssl=/usr/bin/openssl 
[root]# make clean && make && make install

编译并且安装结束,就可以开始试下,先看下版本

[root]# siege -V
SIEGE 4.0.7

Copyright (C) 2018 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.

测试

下面做一次测试,并发20,跑10次百度。

[root]# siege -c 20 -r 10 https://www.baidu.com

执行后,要等待一会,就会出现报告了。


{       "transactions":                           200,
        "availability":                       100.00,
        "elapsed_time":                        18.68,
        "data_transferred":                     1.95,
        "response_time":                        1.28,
        "transaction_rate":                     1.28,
        "throughput":                           0.10,
        "concurrency":                          1.64,
        "successful_transactions":                24,
        "failed_transactions":                     0,
        "longest_transaction":                 16.25,
        "shortest_transaction":                 0.12
}

附命令参数以及性能参数解释

命令参数

| 参数 | 描述 | | ------------------------- | ------------------------------------------------------------ | | -V, --version | 打印版本号 | | -h, --help | 打印帮助信息 | | -C, --config | 打印当前配置信息 | | -g, --get | 拉取http头信息 | | -p, --print | 打印整个页面的内容 | | -c, --concurrent=NUM | 并发用户数量,默认10个 | | -r, --reps=NUM | 运行次数 | | -t, --time=NUMm | 在选定的时间段内运行测试 格式为“NUMm”,其中NUM是时间单位,“m”修饰符是S、M或H,分别表示秒、分钟和小时。 例如: -t3600S,-t60M,-t1H | | -d, --delay=NUM | 每个模拟请求在1-N之间随机延迟秒数. | | -b, --benchmark | 基准测试, 请求没有延迟 | | -i, --internet | 模拟网络用户随机点击URL此选项与配置文件一起使用,该文件是包含许多URL的文件。 使用此选项,每个用户每次点击服务器时都会随机点击文件中的任何URL。 | | -f, --file=FILE | 选择指定的URL文件 默认文件地址是 SIEGE_HOME/etc/urls.txt | | -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 |

性能参数

| 参数 | 描述 | | ----------------------- | ------------------------------------------------------------ | | Transactions | 事务命中次数 案例: -c10 -r2 , 总共20个命中次数 因为遵循的浏览器规范, 所以如果目标页面有多个请求, 那么统计次数会超过预定的数值 | | Availability | 服务器成功处理的套接字连接的百分比 | | Elapsed time | 整个测试持续的时间,从第一个开始到最后一个结束 | | Data transferred | 整个测试传输数据的总和 (包括标题信息以及内容) | | Response time | 每个请求所花费的平均响应时间。 | | Transaction rate | 简而言之,服务器每秒能够处理的平均事务数:事务命中次数除以持续的时间。Transactions / Elapsed time | | Throughput | 吞吐量是从服务器到所有请求用户每秒传输的平均字节数 | | Concurrency | 平均同时连接数,该数量随着服务器性能下降而增加。 | | Successful transactions | 成功事务次数 | | Failed transactions | 失败事务次数 | | Longest transaction | 最长事务时间 | | Shortest transaction | 最短事务时间 |

参考内容

一、网站压力测试工具 二、Siege – HTTPS 网站压力测试超棒的工具

温馨提示:
本文最后更新于 2020年12月04日,已超过 785 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录