web 部署专题(四):压力测试(二)压力测试实例 flask 四种wsgi方式对比(tornado,Gunicorn,Twisted,Gevent)
使用工具:siege
代码结构:
hello.py
templates
|--hello.html
hello.py代码:
from flask import Flask, render_template
app = Flask(__name__) @app.route('/')
@app.route('/<name>')
def index(name=None):
return render_template('hello.html',name=name) if __name__ == '__main__':
app.run(host='0.0.0.0',port=13579, debug=False)
hello.html代码:
from Flask</title>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
flask
命令:siege -c 1000 -r 100 -b http://127.0.0.1:13579/3344
结果:
Transactions: 29511 hits
Availability: 95.08 %
Elapsed time: 254.69 secs
Data transferred: 1.15 MB
Response time: 1.16 secs
Transaction rate: 115.87 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 134.19
Successful transactions: 29511
Failed transactions: 1527
Longest transaction: 88.56
Shortest transaction: 0.00
gunicorn
命令:gunicorn -w 1 -b 127.0.0.1:13578 hello_gunicorn:app
命令:siege -c 1000 -r 100 -b http://127.0.0.1:13578/3344
结果:
Transactions: 57354 hits
Availability: 96.91 %
Elapsed time: 188.50 secs
Data transferred: 2.24 MB
Response time: 0.41 secs
Transaction rate: 304.27 trans/sec
Throughput: 0.01 MB/sec
Concurrency: 124.78
Successful transactions: 57354
Failed transactions: 1831
Longest transaction: 85.62
Shortest transaction: 0.00
tornado
命令:siege -c 1000 -r 100 -b http://127.0.0.1:13577/3344
结果:
Transactions: 217509 hits
Availability: 99.42 %
Elapsed time: 205.48 secs
Data transferred: 8.50 MB
Response time: 0.34 secs
Transaction rate: 1058.54 trans/sec
Throughput: 0.04 MB/sec
Concurrency: 356.45
Successful transactions: 217509
Failed transactions: 1266
Longest transaction: 89.39
Shortest transaction: 0.03
gevent
命令:siege -c 1000 -r 100 -b http://127.0.0.1:13576/3344
结果:
Transactions: 999952 hits
Availability: 100.00 %
Elapsed time: 509.62 secs
Data transferred: 39.10 MB
Response time: 0.48 secs
Transaction rate: 1962.15 trans/sec
Throughput: 0.08 MB/sec
Concurrency: 935.08
Successful transactions: 999952
Failed transactions: 48
Longest transaction: 63.23
Shortest transaction: 0.02
twisted
命令:twistd -n web --port 13575 --wsgi hello_twised.app
命令:siege -c 1000 -r 100 -b http://127.0.0.1:13575/3344
结果:
Transactions: 155276 hits
Availability: 99.14 %
Elapsed time: 321.25 secs
Data transferred: 6.07 MB
Response time: 0.77 secs
Transaction rate: 483.35 trans/sec
Throughput: 0.02 MB/sec
Concurrency: 371.09
Successful transactions: 155276
Failed transactions: 1340
Longest transaction: 83.32
Shortest transaction: 0.04
————————————————
版权声明:本文为CSDN博主「peter-广」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/marscrazy_90/java/article/details/41943211
web 部署专题(四):压力测试(二)压力测试实例 flask 四种wsgi方式对比(tornado,Gunicorn,Twisted,Gevent)的更多相关文章
- web 部署专题(三):压力测试(一)工具 siege
1.介绍 Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访 ...
- web服务器专题:tomcat(二)模块组件与server.xml 配置文件
web服务器专题:tomcat(二)模块组件与server.xml 配置文件 回顾: Web服务器专题:tomcat(一) 基础模块 一个Server.xml的实例 <?xml version= ...
- web 部署专题(二):gunicore 并发部署(用gunicorn+gevent启动Flask项目)
转自:https://blog.csdn.net/dutsoft/article/details/51452598 Flask,webpy,Django都带着 WSGI server,当然性能都不好, ...
- AngularJS测试二 jasmine测试路由 控制器 过滤器 事件 服务
测试应用 1.测试路由 我们需要检测路由是否在运作,是否找到了,或者是404了.我们要确认路由事件触发了,预期的模板是否真的加载了.既然路由会改变页面的地址(URL)和页面内容,我们需要检测路由是否被 ...
- 精读JavaScript模式(四),数组,对象与函数的几种创建方式
一.前言 放了个元旦,休息了三天,加上春运抢票一系列事情的冲击,我感觉我的心已经飞了.确实应该收收心,之前计划的学习任务也严重脱节了:我恨不得打死我自己. 在上篇博客中,笔记记录到了关于构造函数方面的 ...
- linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用
---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10 一.虚拟网络三种连接方式 当在V ...
- 六十四、SAP中的内表的9种定义方式
一.内表一共有9种定义方式,如下: 二.执行如下 *&--------------------------------------------------------------------- ...
- 【转】学习使用Jmeter做压力测试(二)--压力测试的实施
JMeter测试步骤: 1.建立测试计划 2.添加线程组 3.添加HTTP请求 4.增加监听器 5.执行测试计划 6.根据JMeter提供的报告分析结果 一.目标 测试访问目标服务器网站首页的每秒查询 ...
- web 部署专题(六):nginx 安装(二) linux
https://www.cnblogs.com/quzq/p/12131696.html 基础篇 一.环境 服务器版本:CentOS 7.2 为了保证学习阶段不遇到奇怪的事情,请保证以下四点(大神选择 ...
随机推荐
- Spring:扫描组件
<context:component-scan>:扫描组件,对设置的包下面的类进行扫描,会讲加上注解的类作为Spring的组件进行加载 组件:指Spring中管理的bean 作为Spr ...
- @atcoder - ARC077F@ SS
目录 @description@ @solution@ @accepted code@ @details@ @description@ 规定一个字符串为 "偶串" 当且仅当它可以表 ...
- Jlink设置正确,但下载程序失败
[图中reset and run]勾选后即每次·下载程序后会自动复位,不需要再在硬件上进行复位 各参数设置正确 但依然下载失败. 原因是需要重新再编译一次,因为上次设置错误,编译后目标未创建! 重新编 ...
- 【01JMeter基础】线程组
线程组 我们存在接口请求的地方,在JMeter中我们使用最多的模块,分为 setUp线程组.线程组.tearDown线程组 setUp线程组:不论如何排序,都会在所有的线程组中被最早执行,如果有多个s ...
- jwt 工具类
public class TokenUtils { private Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 签名 ...
- powershell代码混淆绕过
目前大多数攻击者已经将PowerShell 利用在了各种攻击场景中,如内网渗透,APT攻击甚至包括现在流行的勒索软件中.powershell的功能强大且调用方式十分灵活,灵活使用powershell可 ...
- C/C++语言的学习方向
这个世界上有太多的坑,如果我们不具备查阅资料的能力和对现实世界的思考能力,入坑是大概率的事情. C/C++语言能做什么?C/C++程序员在做什么?企业需要什么样的C/C++程序员?对初学者来说,要搞清 ...
- java 基础 流程控制
鄙人不才,基础不好,趁着闲时简单学习一下,仅作学习分享,如有不正确地方还请各位看客不吝指出. Java流程主要可以分为: 顺序(可以按照正常顺序一步步往下运行的) 选择(三元操作符[?:];if el ...
- ASP.NET Core Blazor Webassembly 之 渐进式应用(PWA)
Blazor支持渐进式应用开发也就是PWA.使用PWA模式可以使得web应用有原生应用般的体验. 什么是PWA PWA应用是指那些使用指定技术和标准模式来开发的web应用,这将同时赋予它们web应用和 ...
- C# 9.0 终于来了, Top-level programs 和 Partial Methods 两大新特性探究
一:背景 1. 讲故事 .NET 5 终于在 6月25日 发布了第六个预览版,随之而来的是更多的新特性加入到了 C# 9 Preview 中,这个系列也可以继续往下写了,废话不多说,今天来看一下 To ...