HTTP性能测试工具siege

HTTP性能测试工具siege0引言siege是一款Web服务性能压力测试,通过siege的测试,我们可以知道上线的web服务能提供的并发调用能力。主要原理是通过多线程的http请求,将访问的性能数据进行统计。1安装和使用官方文档地址:https://www.joedog.org/。安装很简单,执行下面的命令:sudoapt-getinstallsiege使用命令如下,该命令代表对http://127.0.0.1:8080/进行100并发的请求。siege-c100-r1-bhttp://127.0

大家好,欢迎来到IT知识分享网。HTTP性能测试工具siege"

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.vcn,concurrent=nn访,n,,siegei,internet访urls.txturl,访(),urls.txtdn,delay=nhiturl,0nrn,reps=nn,ttn,time=nsiegen(10S),(10M),(10H)l,siege.log,/usr/local/var/siege.log,.siegercRSIEGERC,rc=SIEGERCsiege,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

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信