yopp
объём памяти зависит от того как данные используются, но в среднем надо рассчитывать что памяти должно быть не меньше чем размер индексов
yopp
А это обычно 10-25% от размера данных
Anonymous
Anonymous
у меня база просто на запись
yopp
Дайте монге пару гигабайт памяти
yopp
Монга меньше гига это не очень идея
yopp
По-моему в WT в принципе меньше 512мб не умеет
Anonymous
по добавляю новых доках
inqfen
inqfen
У меня она выходила за 30 гб на тестинге
Anonymous
если ей не будет хватить памяи
inqfen
inqfen
Anonymous
Anonymous
на хосте 1 гб озу, добавляются много доков по несколько кб
yopp
Это очень мало
inqfen
Кроме конфига монги в мире есть докер, ограничение памяти через systemd и много разных интересных вещей
inqfen
Поэтому да, сама она ограничиваться не умеет, но ей ограничить - можно
Anonymous
yopp
Anonymous
а во сколько упихаю?
yopp
Начните с 4
inqfen
inqfen
Anonymous
inqfen
Можно в докер, с ограничением лимита в нем у меня стабильно живёт месяцами
yopp
Для такого объема памяти на хосте это всё бесполезно
inqfen
Потому что монга думает, что памяти столько, сколько лимит и не пытается коммитить
inqfen
А без него съелада все 32гб и приходил oom
inqfen
Anonymous
какие есть альтернативы монге?
madspectator
Ребята, я может тупой или что :) Вы уже второй день обсуждаете, что монга жрёт память, но автор вопроса ни разу, насколька я помню, не показал, сколько именно монга у него выжрала памяти из этого гигабайта, и сколько жрут другие процессы на этом сервере.
yopp
yopp
какие есть альтернативы монге?
У вас эта проблема будет в любом хранилище. Разница только в том, что если у хранилища есть ручки, вместо падать, хранилище будет тормозить
Anonymous
Anonymous
когда заполниться
yopp
Нет смысла
yopp
Монга + память для ядра + системные сервисы и нет памяти
Anonymous
да в что за магия в этих базах. что там в озу храниться
yopp
Данные
yopp
Сервисные структуры
yopp
Буферы для обработки запросов
Anonymous
какие данные, мне просто добавить новые доки в базу
yopp
Попробуйте дать монге 4 гига и посмотрите что будет
yopp
critskiy
https://docs.mongodb.com/manual/faq/diagnostics
critskiy
Чуть косвенный ответ на них
critskiy
Вопрос про RAM, ай мин, то, что вы говорили
yopp
yopp
Я не вижу рекомендаций
critskiy
Бле, я не про рекомендации, не про лимитирование
critskiy
=_=
yopp
Там нет ничего про ограничение потребления. Там есть про легитимное использование ручки с chacheSizeGB
yopp
То, зачем она предусмотрена вообще
critskiy
Must my working set size fit RAM?¶
No.
critskiy
Там и нет %)
critskiy
Я про ето именно %)
yopp
Если внимательно почитать что там дальше написано, там будет объяснение куда монге нужна память. Да, working set не обязательно должен помещаться в память, но кроме кеша для данных, монге нужна память и на другие структуры.
yopp
Сортировка в памяти на каждый курсор может требовать до 64мб
yopp
Агрегации до 128
Georgii
Привет!
Нужна помощь!
Могу ли я как-то обновить поле у каждого документа в коллекции по принципу: field: oldFieldValue + newFieldValue ?
Кроме как пройтись по коллекции forEach и провести update каждого документа поочередно ничего не придумал 🤷♂️
Vova
Georgii
Georgii
Georgii
Vova
Nick
А до 4.2 только с помощью forEach, верно?
До 4.2 если данные постоянно не меняются и допустим частичный даунтайм пр ложения, то можно сделать ту же агрегацию в новую коллекцию, потом старую удали ь и переименовать коллекцию - это будет быстрее чем вытаскивать доки, менять их и сохранять измененные
Georgii
Anonymous
Добрый вечер, как бы вы смоделировали коллекцию под сдедующую задачу:
- Есть публикации
У каждой публикации есть количество лайков
- Есть пользователь, уникальный идентификатор которого telegram_id.
- Пользователь нажимает лайк на публикацию -> like++
Каким образом можно заимплементить проверку, что пользователь уже лайкал публикацию
Anonymous
Думаю для матерых, задача будет на минуту - две)
Aleksei
да хоть массив likes, где telegram_id
и вставлять через addToSet
Anonymous
{
"post_id": 123,
"likes": [12345, 53556, 383737]
}
Примерно таким образом?
Aleksei
да, как вариант.
тут от задачи зависит, и как с этим работать