大家好,欢迎来到IT知识分享网。
0 引言
siege是一款Web服务性能压力测试,通过siege的测试,我们可以知道上线的web服务能提供的并发调用能力。主要原理是通过多线程的http请求,将访问的性能数据进行统计。
1 安装和使用
官方文档地址:https://www.joedog.org/。
安装很简单,执行下面的命令:
sudo apt-get install siege
使用命令如下,该命令代表对http://127.0.0.1:8080/进行100并发的请求。
siege -c 100 -r 1 -b http://127.0.0.1:8080/
其中,-c代表并发,-r代表循环次数,-b代表请求之间没有时间间隔。
参数详解:
-C,或–config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件 H O M E / . s i e g e r c 中 , 可 以 编 辑 里 面 的 参 数 , 这 样 每 次 s i e g e 都 会 按 照 它 运 行 . − v 运 行 时 能 看 到 详 细 的 运 行 信 息 − c n , 或 – c o n c u r r e n t = n 模 拟 有 n 个 用 户 在 同 时 访 问 , n 不 要 设 得 太 大 , 因 为 越 大 , s i e g e 消 耗 本 地 机 器 的 资 源 越 多 − i , – i n t e r n e t 随 机 访 问 u r l s . t x t 中 的 u r l 列 表 项 , 以 此 模 拟 真 实 的 访 问 情 况 ( 随 机 性 ) , 当 u r l s . t x t 存 在 是 有 效 − d n , – d e l a y = n h i t 每 个 u r l 之 间 的 延 迟 , 在 0 − n 之 间 − r n , – r e p s = n 重 复 运 行 测 试 n 次 , 不 能 与 − t 同 时 存 在 − t n , – t i m e = n 持 续 运 行 s i e g e ‘ n ’ 秒 ( 如 10 S ) , 分 钟 ( 10 M ) , 小 时 ( 10 H ) − l 运 行 结 束 , 将 统 计 数 据 保 存 到 日 志 文 件 中 s i e g e . l o g , 一 般 位 于 / u s r / l o c a l / v a r / s i e g e . l o g 中 , 也 可 在 . s i e g e r c 中 自 定 义 − R S I E G E R C , – r c = S I E G E R C 指 定 用 特 定 的 s i e g e 配 置 文 件 来 运 行 , 默 认 的 为 HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行. -v 运行时能看到详细的运行信息 -c n,或–concurrent=n 模拟有n个用户在同时访问,n不要设得太大,因为越大,siege 消耗本地机器的资源越多 -i,–internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效 -d n,–delay=n hit每个url之间的延迟,在0-n之间 -r n,–reps=n 重复运行测试n次,不能与 -t同时存在 -t n,–time=n 持续运行siege ‘n’秒(如10S),分钟(10M),小时(10H) -l 运行结束,将统计数据保存到日志文件中siege .log,一般位于/usr/local/var/siege .log中,也可在.siegerc中自定义 -R SIEGERC,–rc=SIEGERC 指定用特定的siege 配置文件来运行,默认的为 HOME/.siegerc中,可以编辑里面的参数,这样每次siege都会按照它运行.−v运行时能看到详细的运行信息−cn,或–concurrent=n模拟有n个用户在同时访问,n不要设得太大,因为越大,siege消耗本地机器的资源越多−i,–internet随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效−dn,–delay=nhit每个url之间的延迟,在0−n之间−rn,–reps=n重复运行测试n次,不能与−t同时存在−tn,–time=n持续运行siege‘n’秒(如10S),分钟(10M),小时(10H)−l运行结束,将统计数据保存到日志文件中siege.log,一般位于/usr/local/var/siege.log中,也可在.siegerc中自定义−RSIEGERC,–rc=SIEGERC指定用特定的siege配置文件来运行,默认的为HOME/.siegerc
-f FILE, –file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt
-u URL,–url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定
urls.txt文件:是很多行待测试URL的列表以换行符断开,格式为:[protocol://]host.domain.com[:port][path/to/file]
2 测试
我这里通过python app.py
启动了一个flask程序。
from flask import Flask
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
return "hello"
if __name__ == '__main__':
app.run(port=8080, host="0.0.0.0")
下面是500并发单次的测试结果:
> siege -c 500 -r 1 -b http://127.0.0.1:8080/
** SIEGE 4.0.4
** Preparing 500 concurrent users for battle.
The server is now under siege...
Transactions: 500 hits
Availability: 100.00 %
Elapsed time: 3.31 secs
Data transferred: 0.00 MB
Response time: 0.52 secs
Transaction rate: 151.06 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 77.80
Successful transactions: 500
Failed transactions: 0
Longest transaction: 3.02
Shortest transaction: 0.03
- Transactions:处理请求量
- Availability:可用性100%
- Elapsed time:总完成时间为3.31秒
- Response time:平均响应时间为0.52秒
- Transaction rate:处理速率为每秒151次
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14850.html