tenni
вполне разумно, что-то не учел этот момент.
yopp
Но я если честно ещё не проверял эффект. Мы у одного клиента включили, но я цифры не сравнивал
tenni
скинь потом, интересно
tenni
если не жалко =)
yopp
Смотреть на трафик процесса и на метрики из монги
yopp
Открой доку по serverStatus и там поищи network
yopp
Но не факт что оно туда пишет реальный трафик из сокета. ;)
yopp
В 3.4 в какой-то из версий вообще не всегда ingress правильно репортрлся
yopp
Идёт миграция чанков, а только исходящий на графиках. Данные уходят вникуда!
Sergey
:) ок, поищу, спасибо
Sergey
в документации таких полей пока нет { "bytesIn", "bytesOut", "physicalBytesIn", "physicalBytesOut", "numRequests", "compression": { "snappy": { "compressed": { "bytesIn", "bytesOut" }, "decompressed" : { "bytesIn", "bytesOut" } } } }
yopp
Во. Первые два ключа
yopp
Судя по всему они метрику добавили. Можно из монги посчитать сжатие
Natalie
Ребят, а сколько можно на одном инстансе объем максимальный держать? :)
yopp
Пожалуйста, срачи про SQL разводите на тематических каналах
A
Привет. Коллеги, подскажие по такому вопросу - как правильно коннектить nodejs приложение к mongodb?
A
это же обязательно должно быть соедиение c user:password ?
yopp
Ребят, а сколько можно на одном инстансе объем максимальный держать? :)
Пока индексы в память влазят, после этого будет скорее всего больно.
A
туториалов тонны одноообразных. а по сути нигде не разложено по полкам
yopp
это же обязательно должно быть соедиение c user:password ?
Для ноды есть драйвер, к нему есть документация. Аутентификация по логину/паролю должна быть сначала включена в настройках. Если не включена просто по адресу.
A
то есть сама нода приложение, независимо от пользователя, должна коннектится по юзеру и паролю правильно?
A
ребята, извиняюсь , я дико туплю
A
например, в вордпресс настраивалось соединение вот так: /* MySQL settings */ define( 'DB_NAME', 'database_name_here' ); define( 'DB_USER', 'username_here' ); define( 'DB_PASSWORD', 'password_here' ); define( 'DB_HOST', 'localhost' ); define( 'DB_CHARSET', 'utf8mb4' ); и больше эти данные нигде не использовались. потом создавался админ со своим логином, паролем, и он уже администрировал все данные в монго такой же принцип?
A
mongoose пойдёт?
Михаил Макарычев
то есть сама нода приложение, независимо от пользователя, должна коннектится по юзеру и паролю правильно?
Я не понимаю, в чём вопрос. Ты в самом начале при подключении к БД вводишь нужные данные, а потом ими не пользуешься, разумеется
A
ааа
A
ну вот это и хотел уточнить
A
а в нужных данных должен быть пользователь из базы admin? с "role" : "userAdminAnyDatabase" ?
A
верно?
Михаил Макарычев
верно?
Если в настройки по дефолту, то можно так: const db = new Db('PlantsBot', new Server('localhost', 27017)); Но лучше покрутить настрйки
A
ну это открытая для всех база получается
A
db: 'mongodb://admin:passw@localhost/marketdb',
A
только непонятно, какие права и роль должны быть у этого пользователя
A
конечно, понятно, что если адрес базы будет https://mongolab:blabla/blalbla - сложно будет его узнать.
A
правильно понимаю, что при коннекте к монго, нужно использовать юзера с такой ролью? { user: "superAdmin", pwd: "admin123", roles: [ { role: "root", db: "admin" } ]
A
такое ощущение что большинство тупо под копирку юзает туториалы
tenni
рут это рут
tenni
почитай про роли на доке есть
tenni
на базу данных рута не нужно, поставь что ему нужно, read/write, может какие-то команды нужны.
A
если правильно понимаю, пишут что нужен пользователь с With access control enabled, ensure you have a user with userAdmin or userAdminAnyDatabase role in the admin database
A
надо по другому вопрос задать, на продакшене кто-нить из этого чата юзает mongodb ?)
Timur
Когда триал в Cloud Manager заканчивается, они закрывают доступ? Или к каким-то фичам остается доступ?
Timur
Вопрос отпал:
Timur
Ilya
Привет! С чего начать оптимизацию производительности монги? Есть какой то туториал или мысли) ? Типо такого: 1) Индексы 2) План запроса . . . 20) Сервер помощнее
CC-BY-SA-4.0/Docker-ce30.0
0) Определиться какие запросы надо оптимизировать
CC-BY-SA-4.0/Docker-ce30.0
00))0)
Viktor
+
Roman
Кстати, монговский профайлер умеет считать траффик по запросам?
Viktor
не помню, чтобы видел такое, в основном смотрю на docsExamined и nReturned
Viktor
можно поиграться с уровнем детализации профайлинга
Ilya
Для начала мне нужно оптимизировать find с фильтром по датам, сортировкой, и skip() limit()
Ilya
просто смотреть план запроса и гуглить я так понимаю
Ilya
в коллекции 20 млн записей
yopp
Размер коллекции какой?
Ilya
20 млн записей
yopp
В гигабайтах
Ilya
пока незнаю
yopp
Но как ты знаешь что там 20 млн документов?
Ilya
заказачик сказал что будет столько
yopp
Если у тебя нет данных, ты не можешь ничего оптимизировать.
Ilya
сгенерил миллион записей, ыборка по пол секунды идет
Ilya
пол секунды - долго
Ilya
немного позже напишу сколько весит коллекция, как сгенерю данные
Ilya
На 2 млн записей storageSize() выдает 595 мегабайт (только данные) totalSize() выдает 731 мегабайт (вместе с индексами) Соответственно на 20 млн в среднем будет вес 6 гб
Ilya
получил что выборка на 2 млн занимает 413 мс
Ilya
хочу ускорить)
Ilya
с чего можно начать?
Viktor
самое простое - индексы
Ilya
это уже с индексами
Viktor
а что говорит профайлер? попадает в индекс?
yopp
Там выше написали — со списка запросов
yopp
И QoS для запросов. Фраза «получил что выборка на 2 млн занимает 413 мс» вообще не имеет никакого смысла.
yopp
Если ты пытаешься пройтись курсором по 2млн документов — 400мс отличный результат.
Ilya
я фильтрую коллекцию вот так: "query" : { "$and" : [ { "outSetupTime" : { "$gte" : ISODate("2017-06-29T00:00:00.000Z") } }, { "outSetupTime" : { "$lte" : ISODate("2017-06-29T23:59:59.999Z") } } ] }