LINUX.ORG.RU

Это нормально для MongoDB?

 


0

2
2017-06-15T10:48:07.518+0300 I NETWORK  [thread1] connection accepted from 127.0.0.1:52996 #26948 (26947 connections now open)
26947 connections now open

Я как-то пугаюсь. Да, в оф.доках написано, что монга сама заботится о пуле коннектов, но это всего лишь сутки аптайма....

★★★★★

О пуле коннектов вроде как драйвер должен заботиться. А база будет отдавать сколько попросят, пока не треснет.

Vit ★★★★★
()

Я бы уже начинал беспокоиться, похоже что у тебя соединения вообще не закрываются.

hippi90 ★★★★★
()
Ответ на: комментарий от bvn13

Обычно от одного приложения коннектов в пределах 10. Ну до 100 если ты совсем болт положил на архитектуру или какой-то упоротый хайлоад.

30К - это какая-то странная фигня. Посмотри через netstat, может в логи пишется общее количество открывавшихся коннектов с момента запуска.

Vit ★★★★★
()
Ответ на: комментарий от Vit
(59920 connections now open)

2 дня аптайма

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13

я не могу netstat посмотреть, оно сейчас на офтопике запущено

Ээээ... А в оффтопике уже отменили netstat? Ключи там другие, да, но программа то есть и кажет то что нужно. Заглянцую еще фильтром(findstr например) и смотри какие соединения реально открыты

Pinkbyte ★★★★★
()
Ответ на: комментарий от bvn13

Когда в available будет 0, то при попытке создания нового соединения будет выдавать

connection refused because too many open connections

Нужно переписать код таким образом, чтобы не создавалcя новый клиент для каждого пользовательского запроса. То есть, вот такой код:

require 'mongo'
client = Mongo::Client.new ['127.0.0.1:27017']

нужно исполнить только один раз, и затем использовать этот же клиент для запросов всех пользователей.

Anatolik ★★
()
Ответ на: комментарий от Vit

А жава разве не удаляет объекты по мере выхода из блока? Или в этом конкретном драйвере нету закрытия в деструкторе? Или в жаве не принято такие вещи в деструкторе делать?

redixin ★★★★
()
Ответ на: комментарий от Vit

Программер я один. Я прочитал в доках, мол, «создавайте подключения, можно не закрывать, об этом беспокоится java-mongo библа». Ну я и сделал на каждый запрос - создание MongoClient. А оказывается, так не надо было делать. Я где-то неправильно прочитал, выходит :)

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от redixin

нету в java деструкторов по сути. если объект не хавается GC (вот это для меня тоже странно, почему они столько висят в памяти), то и не вызывается он.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13

А документацию к MongoClient посмотреть было не судьба? Интересно, в jdbc вы тоже дёргаете DataSource#getConnection на каждый запрос без try-with-resources?

grossws
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.