MongoDB "Ошибка подключения. Операция в процессе" - PullRequest
4 голосов
/ 22 августа 2011

вчера выглядело странное поведение:

при небольшой нагрузке все запросы занимают много времени, а затем ошибка возврата сайта "Ошибка подключения к MongoDB. Операция сейчас выполняется" В mongostat мы видим около 10-30 подключений (оченьмаленький, потому что мы обычно работаем с 400-500) Но когда я набираю "netstat -na | grep 27017", я вижу очень большое количество TCP-соединений (> 150):

http://pastebin.com/3ghtwkVd

Почему mongodb закрывает соединение, но TCP все еще открыт?

Мы не используем постоянные соединения и всегда выполняем Mongo: close () в конце скриптов.

Работа сайта в облачной системе, такой как Amazon EC2 (проблем с сетью не наблюдается)

10.1.1.16 - MongoDB 10.1.1.7 - Apache 1 Гбит / с между серверами ОС: Debian 6 SqueezeMongoDB: 1.8.2 (с 1.6.6 у нас та же проблема) Apache 2 PHP 5.3.6 PHP драйвер монго 1.1.0 (пул соединений в 1.2.x очень плох для нас)

1 Ответ

0 голосов
/ 04 февраля 2013

Похоже, ваш драйвер (например, PHP) на самом деле не закрывает TCP-соединение, даже когда вы закрываете его с помощью метода.

Если вы используете PHP в качестве модуля, попробуйте изящную перезагрузку apache, чтобы модуль PHP был выгружен и загружен снова. Таким образом, деструкторы вызываются и соединения закрываются.

Если вы используете PHP в качестве приложения fastcgi, перезапустите (kill / exec) и снова запустите.

Если необходимо, сообщите об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...