Алексей
Вообще раньше все ок было. Монга жила спокойно на 4гб. Потом было обновление нашей API в который часть запросов были переведены на aggregation. И началось. Видимо зря это было сделано (
yopp
добавьте памяти, делов то
yopp
хороший индеец -мертвый индеец =)
индеец может умереть вместе с каким-то важными данными :)
Алексей
скорее не "зря", а безлаберно
В смысле криво было реализовано? Возможно.
AstraSerg
В смысле криво было реализовано? Возможно.
да, непродуманные запросы. Посмотрите в сторону оптимизации, может переделать какие индексы UPD могу конечно ошибаться, но раз такие симптомы, не плохо бв проверить, explain-ы погонять
yopp
В смысле криво было реализовано? Возможно.
скорее всего добавить памяти самый дешевый и простой выход в вашей ситуации
Serhio
индеец может умереть вместе с каким-то важными данными :)
я про то же ) поэтому паковал в докер-контейнер и ограничивал ему память + кеш WT в два раза меньший чем у контейнера, полёт нормальный, при тормозах добавить памяти. OOM не шелохнётся ниразу
AstraSerg
этот вывод на основании чего сделан-то?
Согласен, смелый вывод, поправился
Алексей
скорее всего добавить памяти самый дешевый и простой выход в вашей ситуации
Это можно конечно. Но просто при размере базы чуть больше 1гб съедать 8гб оперативы чет как-то не очень перспектива. К тому же мне нужно именно проблему решить, а не просто сделать так чтоб сейчас по быстрому работало. Я думаю все таки переписать с aggregation на обычные запросы и затестить.
yopp
это вполне реальная перспектива
Алексей
Спасибо за ответы)
yopp
переписать обратно это десятки человекочасов, лишние 8 или 16 гигабайт памяти того совершенно не стоят
yopp
использование памяти субд это не проблема
yopp
если у вас много трансформаций в AF, это нормально
yopp
монге нужен буффер для трансформированных документов
yopp
если вы хотите быстро что-то решить, то как уже сказали — ограничьте размер кеша WT. По-умолчанию это половина памяти. Вручную выставьте лимит в 3/8 например
Алексей
Хорошо. Я понял.
Andrey
Добрый день. Есть реплика сет из 3х нод и 2х арбитров. Упала одна реплика. Хочу запустить полную репликацию. Но опыта работы с репликами почти нет. Я правильно понял, что я должен вычистить содержимое директории с базами, стартануть ноду. После чего, запустится копирование на эту реплику, а затем долгий процесс индексации?
AstraSerg
вот полезно ознакомиться: https://docs.mongodb.com/manual/reference/method/rs.add/
Max
привет! первый раз создаю кластер на монгодб кластере - подскажите какую версию монги лучше выбрать 3.6 или 4 ? На что это влияет (цена/стабильность?)?
yopp
4
Max
4
спасибо!
ᅠ ᅠ ᅠ ᅠ
4
не подскажете, куда копать с моей ошибкой?
yopp
¯\_(ツ)_/¯
yopp
возможно сокеты
yopp
может быть они у вас там текут, и в после N запроса тупо нехватает дескрипторов или что-то в этом духе.
ᅠ ᅠ ᅠ ᅠ
у меня на одном и том же месте при вставке вылетает это исключение
yopp
да, именно по этому
Nick
и кстати как насчет обновить драйвер?
ᅠ ᅠ ᅠ ᅠ
а если руками вставлять а не из кода?
руками вставить можно, но тут именно в коде ошибка
ᅠ ᅠ ᅠ ᅠ
не самый старый вроде бы
Nick
ну да
yopp
моё предположение что из-за database.getCollection("collection") у вас текут сокеты
yopp
почитать внимательно документацию к драйверу
Nick
кстати как вариант, просто вынесите database.getCollection("collection") в переменную
yopp
возможно вы где-то неправильно его используете
Constantin
Nick
и уже ее используйте
yopp
жава же
Nick
еще один момент, вроде выше упоминалось что какоето число доков вставляется, а потом все стопается, если так то сколько влезает и всегда ли одни и те же доки в одном и том же порядке вставляются?
Nick
кстати да в стектрейсе нет insertOne, походу надо запрашивать код в студию
ᅠ ᅠ ᅠ ᅠ
пишу вот так https://ghostbin.com/paste/hxpep
ᅠ ᅠ ᅠ ᅠ
ошибка указывает на строчку Document found = collection.find().first();
yopp
в этот момент в логах монги что?
ᅠ ᅠ ᅠ ᅠ
еще один момент, вроде выше упоминалось что какоето число доков вставляется, а потом все стопается, если так то сколько влезает и всегда ли одни и те же доки в одном и том же порядке вставляются?
да, вставляется кол-во документов до определенного момента. получается так, что у меня в capped collection вставляются новые в конец, а старые стираются с начала
Nick
текс, я помню этот код и этот случай. смотрю вы особо ничему не учитесь в плане работы с кодом
Nick
для начала вам нужно научитсья работать с обычными коллекциями, а уже когданить потом переходить на capped
Constantin
Вы уверены, что у find возвращает что-то?
Constantin
Чтобы делать .first()
Constantin
Вообще его можно делать, если .find ничего не нашел?
Nick
оффтоп по коду. в том куске что вы скинули до сих пор остался поиск и после этого вставка, хотя между этими соыбтиями уже в базе мог появиться такой же документ личная претензия к названиям переменных - вы пишите на java - будьте добры следовать java naming convention и никакой отсебятины 4 уровень вложенность в if - дико увеличивает сложность чтения - нужно выносить код в функции либо упрощать у вас есть абсолютно одинаковые объекты new Document - вынесите в переменную ипереиспользуйте использовать курсор как итератор уже давно моветон есть for each
Constantin
Я не пишу на java, но похоже, что first — это метод курсора, и складывается впечатление, что он просто не может ничего вернуть
Constantin
Из-за того у вас может стрим упасть
Ivan
какая версия?
3.6 Не могли бы вы подсказать далее про журнал?
yopp
в будущем указывайте полную версию
yopp
и платформу
Ivan
платформа это типа реплика или шард и т.п.?
Ivan
оу, открыл. Rhel
Ivan
сейчас скажу полную версию: v3.6.6, rhel
yopp
после перезапуска журнал очищается?
yopp
универсальный совет: попробуйте обновится до последней версии
Ivan
1) перезапуститься монга не смогла, т.к. журнал на отдельном разделе (о чём тоже вопрос, надо ли оно и какой размер ему.) 2) Спасибо. Вообще в журнале что хранится? Какая-то корреляция с оплогом есть?