У меня два сервера Ubuntu 18.04, те же python версии 3.6, те же pymon go версии 3.8, те же MongoDB версии 4.0.6.
эти два сервера имеют одинаковую копию MongoDb, поэтому я могу пропинговать любой из них для получения данных. Единственное различие между этими двумя заключается в том, что первый из них является наследием, а второй я сам придумал. Следовательно, могут быть настройки, о которых я не знаю в первом случае.
У меня есть фрагмент кода, который подключается к Mon go с использованием PyMongo.MongoClient
. Эти вызовы БД выполняются в сценарии с использованием eventlet.monkey_patch()
.
Когда я получаю данные с первого сервера, число открытых соединений в Mon go стабильно, и, проверяя журнал, они правильно закрываются как только запрос завершен.
Когда я получаю данные со второго сервера, число открытых соединений в пн go продолжает увеличиваться. Журнал показывает, что соединения проходят целую вечность, прежде чем они закрываются. Чтобы быть более точным, только соединения, вытекающие из этого сценария, используют eventlet.monkey_patch()
. Соединения из других источников, например, звонки vanilla NodeJS, правильно закрыты. Результатом является большое количество открытых соединений, которые быстро достигают сотен и тысяч.
Если я прокомментирую eventlet.monkey_patch()
, то все вернется в порядок, но я добавлю побочный эффект в свой сценарий, который был ранее исправлен этим monkey_patch.
Может быть, вам не хватает какой-либо настройки, чтобы второй сервер работал так же гладко, как первый?
Большое спасибо