gunicorn + django - 什么是良好的生产水平设置,以实现最大吞吐量?

时间:2016-04-07 16:47:51

标签: python django playframework gunicorn

我正在使用gunicorn + django进行申请。由于我的应用程序没有任何静态内容可供使用,我现在不使用nginx。 (我使用的是Macbook Pro - 8GB Ram,2.7GHz,Intel i5)

我做的唯一设置是枪炮 -

import multiprocessing
bind = '127.0.0.1:8000'
limit_request_line = 0
backlog = 2048
workers = multiprocessing.cpu_count() * 2 + 1
loglevel = 'critical'

我使用“jmeter”进行了一些负载测试,在我的django应用程序中点击一个非常简单的控制器,它只回显查询参数(实际上没有计算)。

我观察到大约560个请求/秒。这是我们用这个技术堆栈得到的最好的吗?我甚至试过“eventlet”和“gevent”都没有成功。

我使用Play Framework进行了类似的实验,并且能够使用默认配置达到750请求/秒。

然而,当我尝试

workers = multiprocessing.cpu_count() * 8 + 1

我能够获得更好的性能,但这种配置感觉不对。

python这么慢还是我犯了一些错误?

更新

我尝试在nginx后面使用gunicorn并且能够实现一些改进。请求/秒从560提高到632.感谢Daniel的建议。但这仍然与我所针对的表现并不相近。我在django / gunicorn中缺少一些配置吗?

0 个答案:

没有答案