Yʉri 🇺🇦
Не совсем тебя понял
Возьми нужное поле и сделай find
maxsimych
Всем привет, подскажите как лучше сделать такой запрос? Возможно ли это сделать одной аггрегацией? У меня пока не получилось. Сложность в том, что нужно совместить группировку с офсетом, пагинацией. Набросал пример того что нужно
yopp
Если вы выбираете по пользователям, то самый простой вариант это $lookup в items
maxsimych
Если вы выбираете по пользователям, то самый простой вариант это $lookup в items
Тогда будут повторяющиеся юзеры, и, если пагинацию делать по items, то уникальных юзеров может быть меньше
yopp
Вы выбираете пользователей, делаете offset/limit и потом делаете $lookup в items
yopp
Не забудьте индекс по полю с user id в коллекции items
maxsimych
Да, это ObjectId
yopp
Это отлично, но любом случае, добавьте индекс по полю в котором он содержится. Иначе лукапы будут очень неэффективными
Fenicu
Добрый, возможно ли искать по регулярке?
Fenicu
Каким образом?
Fenicu
например у меня есть поле name и нужно найти всех Ген, Геннадиев
Stepan
например у меня есть поле name и нужно найти всех Ген, Геннадиев
{"name": /^Ген.*/} Синтаксис регулярок смотри как в JavaScript
Fenicu
а, всё сильно проще, чем я думал
Fenicu
спасибо большое!
Гена
Коллеги На сервере с монгой высокий Load average но при этом ЦПУ и РАМ в норме
Гена
что в этом случае надо ширить ?
Гена
ЦПУ ?
Гена
РАМа 48гб 4 ЦПУ
Гена
ЦПУ 60-70 процентов
Denis
Сколько клиентов и коннектов к базе? Какая конфигурация? replicaset или просто standalone?
Гена
Это шардированный кластер, по подключениям не подскажу точно.
Гена
но много
Гена
и еще вопрос - если 48гб, монга из них юзает 25гб, то она не будет больше использовать?
Гена
просто не является ли это причиной большого LA?
yopp
WT
WT это storage engine. Меняли ли вы алгоритм компрессии с дефолтного snappy?
Гена
я пока не очень понимаю о чем речь
yopp
я пока не очень понимаю о чем речь
https://docs.mongodb.com/manual/core/wiredtiger/#compression
yopp
А высокий LA это сколько?
Гена
8 почти
Dmitry
8 не 90)
Dmitry
проблемы то есть с производительностью? или чисто LA беспокоит?
Dmitry
индексов в базе хватает?
Гена
8 не 90)
ну тем не менее) мы планируем накинуть мощей на сервера вот и надо понять чего накинуть РАМ или ЦПУ
Гена
Denis
8 почти
Вы учитывайте что у вас на каждую шардру если не ошибаюсь идет репликасет, а это затратные операции для CPU. Еще нужно учитывать колл-во коннектов к базе и операций с базами данных. Как по мне адекватные показатели по LA
Dmitry
ну меня LA зашкаливал когда индексов не хватало.. индексы проставил - LA упал
Гена
индексов в базе хватает?
да Все запросы юзают индексы
yopp
8 почти
А сколько ядер?
Гена
4
Гена
Я думаю что имеет смысл запросит сайзинг до 8 ядер
Гена
судя по всему идут большие кол-ва мелких запросов, который особо и не грузят ни рад ни ЦПУ
yopp
4
4 физических ядра или это с НТ?
Гена
НТ?
yopp
HyperThreading. Логические ядра
Гена
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 4 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 63 Model name: Intel(R) Xeon(R) CPU E5-2643 v3 @ 3.40GHz Stepping: 0 CPU MHz: 3396.066 BogoMIPS: 6792.13 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 20480K NUMA node0 CPU(s): 0-3
Гена
физических получается
Гена
ну какой есть
Гена
Как вы думаете если накинуть ядер, LA подспадёт?
yopp
А, это v3. Не очень старый
Гена
Как я это вижу - запросы бегут в монгу и Монга упирается в свой дефолтный кэшсайз и страдает ЦПУ
Гена
ну и LA
yopp
Вероятно это затраты на компрессию. Если кэш не стабилизируется, то такое может быть. Странно что при этом диск справляется. А что с cache metrics в монге?
Гена
Гена
это на один сервер, одна монга
Гена
ну то есть монга больше 25гб не юзает
Гена
данные за месяц
yopp
Я про wt cache из монги
Гена
Я про wt cache из монги
ну я тоже. Кеша используется половина РАМа
Гена
Обращений к дискам почти нет
Гена
но при этом LA 8
Гена
можешь как-то зафорсить монгу использовать больше рам?
yopp
ну я тоже. Кеша используется половина РАМа
Я про метрики WT из collStats: "cache" : { "bytes currently in the cache" : <number>, "bytes dirty in the cache cumulative" : <number>, "bytes read into cache" : <number>, "bytes written from cache" : <number>,
Гена
"cache" : { "application threads page read from disk to cache count" : 737592, "application threads page read from disk to cache time (usecs)" : 267848576, "application threads page write from cache to disk count" : 21663829, "application threads page write from cache to disk time (usecs)" : 379729503, "bytes belonging to page images in the cache" : 8663317479, "bytes belonging to the cache overflow table in the cache" : 182, "bytes currently in the cache" : 19630093614, "bytes not belonging to page images in the cache" : 10966776134, "bytes read into cache" : 13826086654, "bytes written from cache" : 448637007077,
yopp
Это надо не в моменте смотреть, а в динамике
Гена
мм
Гена
понял
yopp
Это ключевая метрика которая показывает как используется кеш