gunicorn和uwsgi是怎么在使用gevent uwsgi flask的,gunicorn/uwsgi和gevent uwsgi flask

最近使用uwsgi出了一些问题,于是测试下Gunicorn测试对比下
一颗cpu 1g内存 Centos系统 Django作为后端应用,Gunicorn默认模式和异步模式,响应基本是无阻塞类型
测试的request是一个加密操作,对url中的几个参数做一个ase加密
说明:下面的模拟阻塞模式,类似于你的请求中有很多调用第三方api的场景,因为网络延迟导致响应比较长
ab -n 10000 -c 100 -r 'http://127.0.0.1:8888/account/ulogin/3/?wlanuserip=127.0.0.1&wlanacname=&ssid=cmcc&wlanparameter=ffffffffffff'
#模拟阻塞的模式下 -n 1000
ab -n 1000 -c 100 -r 'http://127.0.0.1:8888/account/ulogin/3/?wlanuserip=127.0.0.1&wlanacname=&ssid=cmcc&wlanparameter=ffffffffffff'
Gunicorn 同步异步测试
应用启动参数
gunicorn -b 0.0.0.0:8888 wsgi:application
gunicorn -b 0.0.0.0:8888 -k 'gevent' wsgi:application
数字含义:总时间 qps 错误数
请求处理无阻塞:
默认模式worker: 27.5s,364,0;
26.3s,261,0
异步模式worker:31.9s,312,0;
每个请求增加0.1秒的阻塞之后:
默认模式: 已经下降到 不到10的qps
异步模式: 仍然可以和之前的速度相当 300qps左右
对使用同步还是异步worker,使用多少worker都有详细的建议
uWSGI同步异步测试
应用启动参数
数字含义:总时间,qps,错误
一般请求:
默认模式: 26s, 385,0;26.2s, 380, 0
异步模式: 26.8s, 373, 0;
25.9s, 385, 0
每个请求0.1s阻塞请求下:
默认模式:109s,9,0; 103s,9.6,0
异步模式:104s, 9.6,0;
106s, 9.2,0
#基本跟同步模式没啥区别
开头给出了一个警告:如果你的app不是时间驱动的话,使用这种模式是不对的。说白了,uwsgi的事件模式其实对应的是后端的事件框架,例如用gevent选项,后端是gevent才有效,如果后端是django,其实怎么配置没有多大区别,并没有对django的wsgi做了异步操作。
在响应时间较短的应用中,uWSGI+django是个不错的组合(测试的结果来看有稍微那么一点优势),但是如果有部分阻塞请求 Gunicorn+gevent+django有非常好的效率, 如果阻塞请求比较多的话,还是用tornado重写吧。
本文已收录于以下专栏:
相关文章推荐
       去年10月份建了一个python技术群,到现在为止人数已经涨到700人了。最一开始我经常在群里回应大家的问题,不管是简单还是困难的,我都会根据自己的经验来交流。 让人新奇的...
问题来源曾经遇到过一个项目涉及到了上传商品图片的问题,而我在限制图片大小的时候,是先把整个图片都读取到内存中,然后再判断其大小。这种做法当出现恶意攻击或者图片很大时,会严重影响web applicat...
1. nginx 报 readv() failed 
uwsgi+nginx搭建的server,发现当用post请求时,会返回数据超时。查了一下nginx中的error.log:
[error] ...
WSGI Server有哪些:
比如 Flask,webpy,Django、CherryPy 都带着 WSGI server 。当然性能都不好,自带的web server 更多的是测试用...
WSGI Server有哪些:
比如 Flask,webpy,Django、CherryPy 都带着 WSGI server 。当然性能都不好,自带的web server 更多的是测试用...
mysqlslap --defauls-file=&d:\mysql 5.5.38\my.ini& --concurrency=2000 --iteration=5 --engine=myisam -...
利用NGINX搭建反向代理服务器,对于测试环境可以有如下作用:
1. 统一各应用的服务地址,方便应用环境快速切换。
2. 按照NGINX标准格式记录应用访问的日志,解决了长流程交易各应用时钟不一致对于...
五种I/O 模式:
【1】        阻塞 I/O           (Linux下的I/O操作默认是阻...
转载至:/xychenbaihu@yeah/blog/static//
种I/O 模式:
【1】        ...
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 gunicorn vs uwsgi 的文章

 

随机推荐