Mongo连接未释放 - Django与Mongoengine在gunicorn和gevent上运行

8 投票
1 回答
970 浏览
提问于 2025-04-18 07:25

我有一个使用mongoengine的django应用程序,它在gunicorn上运行,并且使用gevent工作进程。在负载较大的情况下,mongo的连接数量会飙升到大约3000个,并且从来不会下降。即使负载测试完成后,mongo连接的数量也保持不变。重启gunicorn后,这些连接才会释放。

软件包版本

gunicorn==0.17.4
mongoengine==0.8.7
pymongo==2.7

mongodb 2.6.0

我在一个特定环境的django设置文件中配置了mongoengine的连接设置:

MONGO_DATABASES = {
    'default': {
        'DB': '****',
        'HOST': ***********:27017',
        'PORT': 27017
    }
}

from gevent import monkey
monkey.patch_all()
from mongoengine import connect
connect(MONGO_DATABASES['default']['DB'], host=MONGO_DATABASES['default']['HOST'],       port=MONGO_DATABASES['default']['PORT'], max_pool_size=100)

我需要做些什么来确保未使用的连接最终能够被释放吗?

谢谢,

Doug

1 个回答

暂无回答

撰写回答