gunicorn+gevent+django+PostgreSQL下的数据库连接情况
最近写一个项目,边进行代码编写,边阅读django的源码,有些疑问:
首先设置如下场景:
- 以gunicorn作为部署服务器,worker class使用gevent,worker数量为4
- gunicorn的max requests参数设为100
- django使用psycopg2的backend作为数据库驱动代理
- 使用psycogreen来patch psycopg2,使之能够支持gevent的协程
- Django使用1.6以上的版本
问题如下:
- 在上述gunicorn的配置下,应该有4个python进程处理request,每个进程下是否都是为每一个request分配一个gevent协程来处理?
- 如果上一问中的答案为 是 ,那么是否每一个协程都会创建一个连接?比如:参考上面的配置,假如某个进程现在有40个请求待处理,那么它将创建40个协程,同时每个协程创建一个数据库连接,也就是40个连接(不一定同时创建,考虑到各个请求的处理时间长度不一样)?
-
Django 1.6引入的
CONN_MAX_AGE
这个数据库配置的参数如何影响上一问中的数据库连接创建的情况?
希望有熟悉情况的哥们能够回答一下。
gevent PostgreSQL gunicorn django
vivca
11 years, 7 months ago