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
这个数据库配置的参数如何影响上一问中的数据库连接创建的情况?
希望有熟悉情况的哥们能够回答一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论