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 为了保证学习阶段不遇到奇怪的事情,请保证以下四点(大神选择 ...
随机推荐
- EIGRP-16-其他和高级的EIGRP特性-2-非等价负载分担
与大多数内部路由协议不同的是, EIGRP能够将流量负载分到多条非等价路径上,而不仅仅使用去往目的地最近距离的那一条路径.提供这项功能的特性称为非等价负载分担. 非等价负载分担的核心概念是可行后继 ...
- C++中类成员的访问控制
结论 首先给出结论,请看下图,看图说话最容易理解了. 类眼中的自己 类中定义的所有成员,不论是以public, protected还是private修饰,对类自身而言,它们都是可见的. 对象眼中的类 ...
- 自动完成 APP【字典树(Trie树)+dfs】
自动完成 APP 传送门 来源:upc12786 题目描述 奶牛 Bessie 很喜欢用手机上网聊天,但她的蹄子太大,经常会按到好几个键造成不必要的麻烦(丢死人了,你下辈子还是不要当奶牛了).于是 ...
- Razor 视图
Razor 视图 关于视图引擎 视图引擎简单理解就是能够支持对视图的解析,在 ASP.NET MVC 中,视图引擎的作用就是把视图处理成浏览器能够执行的 HTML 代码,不同的视图引擎,语法规则不一样 ...
- web资源图分析
随着请求数增加,吞吐量没有增大,服务器仍然可以处理,那就是带宽问题 Web资源图是从服务器的角度进行统计分析的,和事务图是两个纬度. 1,每秒点击数 每秒点击数( Hits per Second)统计 ...
- JavaWeb网上图书商城完整项目--13.项目所需环境的搭建
1.首先安装mysql 创建项目所需的数据库,直接运行项目提供的goods.sql文库 2.myeclipse创建一个web project ,项目的名称是goods 把视频中提供的项目原型下的提供的 ...
- win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录
前言 前几天重装系统,把系统升到了Windows 10 2004,然后在安装Docker Desktop(2.3.0.3版本)时发现跟以前不太一样了.现在Docker Desktop默认使用WLS 2 ...
- 用Creator实现一个擀面的效果
先上几张效果图 怎么实现的呢? 节点介绍 1是背景图,可以忽略:2 是准备好的面团:3 是擀好的面饼先隐藏:4 是需要绘制的节点:5 是擀面杖. 制作开始 首先在view上挂一个mask,并且设置为模 ...
- 深入理解JavaScript系列(2):揭秘命名函数表达式(转)
前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点. 简 单的说,命名函数 ...
- 痞子衡嵌入式:kFlashFile v1.0 - 一个基于Flash的掉电数据存取方案
大家好,我是痞子衡,是正经搞技术的痞子.今天给大家带来的是痞子衡的个人小项目 - kFlashFile. 痞子衡最近在参与一个基于 i.MXRT1170 的项目,项目有个需求,需要在 Flash 里实 ...