Flask gevent 多进程WSGI(非gunicorn)

Flask gevent 多进程WSGI(非gunicorn)

python多进程gevent,Flask gevent multiprocess WSGI,Flask gevent 多进程WSGI,Flask多进程gevent。

题外话:Flask,Instagram据说扛住了上亿日活,以前是Django。其是一个非常优秀的web service 框架,简洁灵活,可以利用大量的第三方组件和模块来快速开发。

如今,Instagram 的总注册用户达到 30 亿,月活用户超过 7 亿 (作为对比,微信最新披露的月活跃用户为 9.38 亿)。而令人吃惊的是,这么高的访问量背后,竟完全是由以速度“慢”著称的 Python + Django 支撑。

时至今日,即使已经拥有超过 30 亿的注册用户。Instagram 仍然是 Python 和 Django 的重度使用者。Instagram 的工程师 Hui Ding 说到: 『一直到用户 ID 已经超过了 32bit int 的限额(约为 20 亿),Django 本身仍然没有成为我们的瓶颈所在。』

 flask + gevent + multiprocess + wsgi简介

常常大家都是用gunicorn来解决flask后端部署并发的问题, 然而觉得自启多进程是为更优雅的高并发方式。这样就不需要gunicorn了。也没有额外的第三方部署工作,于是有了以下flask + gevent + multiprocess + wsgi测试

flask + gevent + multiprocess + wsgi程序代码cppla.py

测试环境

机器配置

  • 4vCPU
  • 8GB

环境配置

  • Centos 8
  • Python 3.6.8
  • Flask  1.1.2
  • Gevent 1.5.0

压测工具

  • WRK
  • 4H8G机器

单进程 + 协程 + WSGI

测试结果

QPS : 2361 r/s

该模式启动了一个进程

测试详情

多进程 + 协程 + WSGI

测试结果

QPS : 7500 r/s

该模式启动了4+1个进程(4vCPU)

测试详情

协程并发真的很强!4核虚拟机多进程并发高达7000QPS,回头测试一下python协程和golang协程的效率对比。

补充:4核8线程3.6GHZ物理机上多进程并发高达15000QPS

也就是“理想”情况,每秒1w5 QPS,每小时5400万请求。

转载务必注明:https://cpp.la/439.html, by:cpp.la

 

One Reply to “Flask gevent 多进程WSGI(非gunicorn)”

发表评论

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