@MongoDBRussian

Страница 281 из 342
yopp
03.08.2018
18:04:50
Нет, это Феди Скуратова

Tenni
03.08.2018
18:04:54
и здесь этот собиратель метрик

Phoenix»
03.08.2018
18:12:52
Монгус использует нативный драйвер
Это да Но скорость то его ниже?

Статья на медиуме говорит что да Захотел узнать мнение пользователей тут

Google
Phoenix»
03.08.2018
18:17:02
Просто при чтении файла только 60к в минуту записываеься в дб(updateone) Хочу ускорить, ищу варианты(в любом случае попробую, но мб кто знает еще варианты)

Constantin
03.08.2018
18:17:18
Это да Но скорость то его ниже?
Смотря что вы подразумеваете под скоростью. Монгус перед вставкой делает прогон документа по схеме для валидации или приведение типов. + выполняет хуки, если они есть. В принципе, если все это вам не нужно, можно не использовать монгус, но не думаю, что сильно медленнее. На чтение и удаление ничего такого, насколько я знаю не делается. Главное понимать, что когда вы делаете .exec() у вас данные кладутся в массив (аналог toArray, нативного драйвера). Это определенно даст вам просадку на больших выборках, как по оперативке так и по процессору, с другой стороны монгус предоставляет .cursor, который возвращает нормальный курсор, как и стандартный драйвер

Просто при чтении файла только 60к в минуту записываеься в дб(updateone) Хочу ускорить, ищу варианты(в любом случае попробую, но мб кто знает еще варианты)
Факторо много может быть: Если есть индексы, и они сложные, вставка будет дольше Еще может упираться в диск, optlog и т. п.

Phoenix»
03.08.2018
18:39:07
Богдан
04.08.2018
08:46:32
Господа, а не подкажите, как подключится именно к своей базе, а то у меня строка в формате mongodb://root:root@mongo:27017/admin и получается у меня модели создаются в базе admin, а мне нужно в своей базе?

Constantin
04.08.2018
08:48:37
Вместо admin сделайте имя вашей базы

Богдан
04.08.2018
08:49:13
Вместо admin сделайте имя вашей базы
я делал, тогда аутентификацяи не работает

Constantin
04.08.2018
08:50:35
?authSource=admin попробуйте добавить к строке

Еще root:root лучше не делать, а создавать пользователя/коллекцию авторизации под проект

Богдан
04.08.2018
08:52:01
Constantin
04.08.2018
08:52:12
Богдан
04.08.2018
08:53:30
Еще root:root лучше не делать, а создавать пользователя/коллекцию авторизации под проект
и еще маленький вопросик, но уже связанный с докером, можно при инициализации базы задать другой порт, не 27017 ?

Google
Богдан
04.08.2018
08:54:23
вот мой конфиг докер-комоса mongo: image: mongo:latest volumes: - mongo:/data/db ports: - $MONGO_PORT:$MONGO_PORT environment: MONGO_INITDB_ROOT_USERNAME: $MONGO_INITDB_ROOT_USERNAME MONGO_INITDB_ROOT_PASSWORD: $MONGO_INITDB_ROOT_PASSWORD MONGO_INITDB_DATABASE: $MONGO_INITDB_DATABASE

Constantin
04.08.2018
08:54:41
Докер тут не причем, можно в файле конфигурации mongodb. Хотя если у вас докер — это должно быть неважно, потому что вы прокидываете порты

Ну вот в ports один у вас порт — это порт хостовой машины, а другой дочерней

Богдан
04.08.2018
08:55:38
Докер тут не причем, можно в файле конфигурации mongodb. Хотя если у вас докер — это должно быть неважно, потому что вы прокидываете порты
ну как бы прокидываю только наружный порт, а в компосе другие контейнера видят только внутренний порт

Constantin
04.08.2018
08:56:12
Порт хостовый поменяйте на тот, который вам нужен. В композе как раз контейнеры общаются по внешним портам, а не по внутренним

Constantin
04.08.2018
08:58:36
хм ... сейчас еще раз проверю
Суть контейнера в том, что вам все равно, в целом что там внутри, докер определяет какой порт изнутри будет смотреть на какой порт наружу

ports: - $MONGO_PORT:$MONGO_PORT Вот тут у вас должны быть разные переменные

Богдан
04.08.2018
09:03:21
но вот не работает





так что получается, в компосе контейнера взаимодействуют через внутренние порта

Constantin
04.08.2018
09:05:42
Богдан
04.08.2018
09:06:16
Может быть, тогда посмотрите переменные контейнера
не понял, какие именно переменные посмотреть?

Constantin
04.08.2018
09:06:28
окружения в контейнере

Возможно можно переопределить конфигурацию, также как вы задает логин/пароль

Богдан
04.08.2018
09:08:15
вот-вот, я уже гуглил на эту тему и нашел только эти 3 переменные: логин, пароль, база аутентификации. Вот и ищу как порт переопределить

ну при инициализации базы в докере

Constantin
04.08.2018
09:12:37
Customize configuration without configuration file — вот этот раздел тут: https://hub.docker.com/_/mongo/

Google
Богдан
04.08.2018
09:40:59
вроде получилось, может кому-то будет полезно mongo: image: mongo:latest command: --port 27018

Всем спасибо, за помощь

и еще маленький вопрос, а какой есть норм viewer баз данных под Windows?

а то компас какой-то тормознуты, а Robo 3T - жутко неудобный

Andrew
04.08.2018
09:52:37
Mongoboost, studio 3Т ещё

Хотя я себе тоже нормальный клиент не нашел, пользуюсь robomongo ибо shell адекватно работает, а конструкторы мне нафиг не нужны

Богдан
04.08.2018
09:59:17
мне вот для реляционных БД Dbeaver очень понравился, он вроде поддерживает и NoSQL но уже в Enterprise версии за денюшку

а вот для Редиса, вообще ничего не нашел

Constantin
04.08.2018
10:40:40
Cli наше все

Я использую плагин для атома run-script. Mongo Hub ещё иногда, но не знаю есть ли он под винду

Богдан
04.08.2018
10:46:13
Я использую плагин для атома run-script. Mongo Hub ещё иногда, но не знаю есть ли он под винду
сенкс, а что за монго хаб? А то в гугле не могу найти, все ссылки на репозиторий монги

Constantin
04.08.2018
11:19:16
https://github.com/jeromelebel/MongoHub-Mac — но он всеже только для мака

Владислав
04.08.2018
16:09:15
Друзья, есть вопрос Не могу найти информацию, транзакции работают на асинхронном java драйвер или нет? И работают ли не на кластере, например, на бд из млаба?

Вертулий
05.08.2018
08:00:34
Здравствуйте, а как в MongoDB сделать интеграцию с сервером?

Constantin
05.08.2018
08:18:03
Здравствуйте, а как в MongoDB сделать интеграцию с сервером?
Расскажите подробнее, пока не понятно

Игорь
05.08.2018
13:10:35
Товарищи, помогите разорбаться. Стала падать монго. Последнее, что остается в логах перед падением. 2018-08-04T20:22:48.376+0300 I NETWORK [conn751161] received client metadata from 127.0.0.1:35178 conn751161: { driver: { name: "PyMongo", version: "3.6.1" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "4.9.0-6-amd64" }, platform: "CPython 3.6.3.final.0" } 2018-08-04T20:22:48.378+0300 I NETWORK [listener] connection accepted from 127.0.0.1:35180 #751162 (134 connections now open)

Падения в преложении стали систематическими, но я не могу понять причину этого

после перезапуска долгое время все скрипты работают, все штатно. В данном случае упала спусться почти два дня работы

[Sat Aug 4 11:35:09 2018] [181993] 0 181993 11523 1433 25 3 0 0 systemd-journal [Sat Aug 4 11:35:09 2018] [182060] 506 182060 7895 461 19 3 0 0 pgrep [Sat Aug 4 11:35:09 2018] Out of memory: Kill process 259299 (mongod) score 290 or sacrifice child [Sat Aug 4 11:35:09 2018] Killed process 259299 (mongod) total-vm:31873268kB, anon-rss:22790924kB, file-rss:0kB, shmem-rss:0kB

Google
Игорь
05.08.2018
13:37:16
нашел причину, тонее "убийцу"

Constantin
05.08.2018
13:53:07
OOM Killer настройте, чтобы у монги был самый низкий приоритет. Можно сделать это через systemd юнит монги, чтобы при запуске сразу ее пиду выдавались более низкие позиции в списке жертв OOM Killerа

Еще советую накинуть оперативки, на худой конец свопа, и найти запрос который выжирает вам оперативку

Игорь
06.08.2018
08:33:37
Вопрос, скрипты работают с монго через pymongo и бывает, что по каким-то причинам запрашивается большая выдача даных из базы, но в этот момент происходит сбой и не считанный курсор так и остается висеть в базе со всей выделенной под него оперативкой. У монго есть внутренний механизм убивать курсоры, которые долго весят?

Constantin
06.08.2018
08:37:41
Вообще по таймауту должна резать курсор

Игорь
06.08.2018
09:00:01
в данный момент ситуация такая, размер рабочей базы к которой идут запросы порядка 9 гб, но со временем работы она постепенно отжирает около 30 гб оперативной памяти и показывает, что всегда висит около 7-9 соединений даже когда активных скриптов нет и к базе, кроме меня через терминал ни кто не обращается

Ilya
06.08.2018
09:02:19
мне помогла установка connectTimeoutMS

Игорь
06.08.2018
09:03:31
9Гб на диске?
База занимает 9, да

yopp
06.08.2018
09:05:48
Это неверный метод оценки. Смотреть необходимо на collStats, на сумму size и indexSizes. https://docs.mongodb.com/manual/reference/command/collStats/#collStats.size

WT в кэше хранит некомпенсированные страницы

Если у вас хорошо сжимающиеся данные, на working set может потребоваться существенно больше памяти. По поводу «висящих» соединений. Используйте возможности маркировки курсоров https://docs.mongodb.com/manual/reference/method/cursor.comment/ Например, добавляйте туда точку вызова. Дальше через currentOp у вас будет возможность идентифицировать где в вашем приложении «текут» курсоры.

В остальном, если вы уже сталкивайтесь с нехваткой памяти, вам необходимо масштабироваться.

Даже если вы устраните текущие курсоры, это практически не повлияет на объём используемой памяти.

Если вас беспокоят цифры, то это повод перестать беспокоиться. Современные базы данных стараются максимально использовать оперативную память под свои нужды.

Внедрите средства контроля и следите за latency и количеством запросов по типу операций . Все остальные метрики имеют смысл только когда вы ищите проблемы, которые будут видны по росту latency.

Игорь
06.08.2018
09:24:09
я просто к тому, что при удельном весе всей базы в 9, оперативы в итоге уходит 29. Я правильно понимаю, что монго таким образом может кешировать запросы или какие-то еще операции?

Google
Vasiliy
06.08.2018
11:45:35
ребяты, подскажите пожалуйста как в group: ... sum: '$column_name' приводить $column_name к числу?

Nick
06.08.2018
11:46:27
Приводить к числу? Вы строки суммируете?

AstraSerg
06.08.2018
11:47:04
ребяты, подскажите пожалуйста как в group: ... sum: '$column_name' приводить $column_name к числу?
первая ссыль в гугле https://stackoverflow.com/questions/29487351/how-to-convert-string-to-numerical-values-in-mongodb :)

Страница 281 из 342