下面是百度和Google上面的所有关于gevent+Django的调研:
百度搜索django gevent,然后下面是百度前10页的所有相关链接(有些博主自己都没搞懂asyncio异步和celery异步啥区别的,我直接删除)
Google搜索django gevent,返回前面几页的相关结果。
上述搜索结果我全部罗列到了下面的 References中
可能可以落地的是:
[1][4][6][8][13][29]
其中有完整例子的是:
[6][13][29]
#-----------------------------------我自己的实测结果-----------------------------------------------------------------------------
下面表格中的transaction rate是并发数量
测试方式 | 结果 | 压测时间 |
python manage runserver | Transactions: 5362 hits Availability: 100.00 % Elapsed time: 25.37 secs Data transferred: 0.07 MB Response time: 0.56 secs Transaction rate: 211.35 trans/sec Throughput: 0.00 MB/sec Concurrency: 118.34 Successful transactions: 5362 Failed transactions: 0 Longest transaction: 14.92 Shortest transaction: 0.00 |
脉搏约30下 |
gunicorn + gevent |
Transactions: 6884 hits Availability: 100.00 % Elapsed time: 42.47 secs Data transferred: 0.09 MB Response time: 1.53 secs Transaction rate: 162.09 trans/sec Throughput: 0.00 MB/sec Concurrency: 247.45 Successful transactions: 6884 Failed transactions: 0 Longest transaction: 20.58 Shortest transaction: 0.09 |
脉搏约30下 |
gunicorn+gthread | Transactions: 7050 hits Availability: 99.27 % Elapsed time: 21.18 secs Data transferred: 0.94 MB Response time: 0.75 secs Transaction rate: 332.86 trans/sec Throughput: 0.04 MB/sec Concurrency: 250.20 Successful transactions: 7050 Failed transactions: 52 Longest transaction: 2.41 Shortest transaction: 0.21 |
脉搏约30下 |
gunicorn + gthread + CONN_MAX_AGE |
Transactions: 12300 hits 上述并发中出现不少挂掉的: |
脉搏约30下 |
gunicorn+gevent+ CONN_MAX_AGE |
这个结果还是算了吧,明显不靠谱 | 脉搏约30下 |
完整测试过程与测试代码:
https://github.com/appleyuchi/django_gevent_test
后来联系上了最初的代码作者,作者说,压测是本地机子对云主机进行的,而不是本地机对本地机进行的。
gevent+django的效果只是看上去跑的通,其实效果并没有提升。
作者说:要注意第三方的api的压测结果,再考虑接入第三方api。
Reference:
[1]Django Gevent integration(stackoverflow)
[2]如何提高django的并发能力(与[29]一致)
[3]gevent+django的坑(不行)
[4]how to combine django plus gevent the basics?(stackoverflow)
[5]gevent(没啥用)
[6]async-django-gevent-demo(github上面的一个例子)
[7]利用gevent来配置uwsgi提高django项目并发量(沒有完整代码)
[8]如何用 gevent 提高 Django 的性能?(zhihu提倡tornado)
[9]django-gevent(作者自己都说不行)
[10]Nginx + Gunicorn(+gevent) + Django(沒有完整例子)
[11]nginx + gevent + django高并发配置 django案例 django建站 django搭(没啥用)
[12]解决gunicorn+gevent+django数据库高连接数问题(gevent+django使用中的一个问题,没有完整例子)
[13]用gunicorn和gevent提高python web框架的性能(Flask+gevent例子)
[14]python用gevent实现异步(没有涉及web框架)
[15]关于gevent的一些理解(二) (只是测试而已)
[16]django 的并发(沒有完整例子,但是显然博主理解比较深刻)
[17]django+nginx+supervisor+gunicorn+gevent 网站部署(讲了配置,但是没有完整例子)
[18]Python Gevent – 高性能的 Python 并发框架(这里最后一个例子有提到Flask,但是属于websockets API)
[19]谁说gevent不能做web开发的(fastpy框架)
[20]gunicorn+gevent+django+nginx部署体验(没有完整实验)
[21]django + gunicorn +nginx + gevent(没啥用)
[22]谁说Django搞定不了千万并发,看你怎么用!(Instagram虽然用了django,但是人家没接第三方api)
[23]Python协程(gevent+asyncio)模块(没有涉及web框架)
[24]利用gunicorn提高django的并发能力(同[29])
[25]同步、异步(gevent,asyncio)、多线程(threading)效率对比(只是稍微提了下Django)
[26]How to make Django works with gevent?(这个讨论的是django的websocket api)
[27]Python/Django + Gunicorn with Gevent Workers
[28]python 高性能web框架 gunicorn+gevent
[29]如何提高django的并发能力