@MongoDBRussian

Страница 319 из 342
AstraSerg
02.10.2018
09:16:04
Уже хорошо
проверил все хосты, все доступны

Constantin
02.10.2018
09:16:12
Попробуйте пробежаться по этому разделу

Пасюк Лошадкин
02.10.2018
09:16:19
Все сводится к тому, что у вас отвалися Primary, и реплика не смогла избрать нового
Это я понял, допустим Но раз вы говорите, что он сам выбирается, то как исправить проблему?

Constantin
02.10.2018
09:16:28
Чтобы мы с вами на одном языке говорили, будет проще диагностировать

Google
Constantin
02.10.2018
09:16:41
Нужно подключиться к одной из баз, и посмотреть состояние реплики

rs.status()

можете сделать это через mongo

Пасюк Лошадкин
02.10.2018
09:17:51
Просто суть в том, что половина ботов функционирует и обращается к датабазе, а другая половина нет

rs.status()
Это на сайте делать?

Bodya
02.10.2018
09:21:16
заработало



Constantin
02.10.2018
09:22:15
Есть три сервера: один из них ведущий, второй ведомый, третий арбитр (или тоже ведомый) 1. Если ведущий выпадает, начинаются выборы 2. Результаты выборов, или избрали нового ведущего, или новые выборы, пока выборы идут работать не будет Возможные проблемы: 1. Не избран ведущий, выборы продолжаются и продолжаются (обычно ошибка настройки реплики) 2. Нет доступа к ведущему с машины, с которой вы получаете такие ошибки 2.1. Возможно адрес ведущего не попадает в connection string — строку, по которой вы подключаетесь к реплике 2.2. Возможно ведущий не доступен с машины, с которой вы пытаетесь подключиться

Поздравляю вас!

Это на сайте делать?
Через утилиту mongo подключитесь к одному из узлов, и на нем попробуйте. Как только подключитесь в REPL должно будет быть написано что-то такое: PRIMARY:> или SECONDARY:> — это будет хороший знак

Bodya
02.10.2018
09:24:56
Поздравляю вас!
Здесь какая-то магия

Старый код тоже работает

Google
AstraSerg
02.10.2018
09:33:32
Здесь какая-то магия
С магией это вам в другой чатик. Тут мы с ней боремся :)

Bodya
02.10.2018
09:35:07
Если с магией работает значит всё окей

AstraSerg
02.10.2018
09:44:04
Еще раз. Откройте командную строку и вбейте в ней mongo и нажмите ентер

Получилось?

Пасюк Лошадкин
02.10.2018
09:45:58
Попозже начну

AstraSerg
02.10.2018
09:46:20
Ок

Dmitriy
02.10.2018
09:55:06
ребят, а в монге можно опредилить уникальный индекс схеме до создания документа? ткните носом в доку пожалуйста, если можно

Bodya
02.10.2018
09:55:58






Banschikov
02.10.2018
10:05:47
Всем привет! Подскажите как монга работает с памятью? При вставке большого кол-во данных, монга начинает потреблять большое кол-во памяти. Что она хранит в этой памяти? И что будет если ограничить лимиты монги по памяти в этом случае? Она будет падать?

Banschikov
02.10.2018
10:15:13
Какую память
Я как понимаю за это отвечает механизм WiredTiger. Память оперативная (ОЗУ)

Google
Banschikov
02.10.2018
10:18:03
Если ограничить, то она начнет записывать на диск
Я буду выражатся максимально просто. Получается данные которые попадают в монгу, сначала аллоцируются в ОЗУ, до того времени пока не упрется в потолок. После этого монга будет писать данные напрямую в дисковую систему

Nick
02.10.2018
10:18:19
нет

зависит от кучи факторов, основные из которых оператива, кеш WT и горячий сет данных

по механике, данные всегда пишутся на диск, но при этом остаются в кеше.

во время запрсоа если данных нет в кеше WT, првоеряется кеш операционки механизмами ОС, если в нем нет. то лезем за ними на диск

Пасюк Лошадкин
02.10.2018
10:24:49
А может ли это быть из за большого количества коннектов?



У меня их 100 из 100

Constantin
02.10.2018
10:37:31
А может ли это быть из за большого количества коннектов?
Ну гипотетически может, а что у вас генерирует такое большое их количество?

Пасюк Лошадкин
02.10.2018
10:37:44
А я вот не в курсе

У меня максимум 7 ботов

По идее, 100 не должен набирать

Banschikov
02.10.2018
10:40:14
во время запрсоа если данных нет в кеше WT, првоеряется кеш операционки механизмами ОС, если в нем нет. то лезем за ними на диск
Спасибо! Вот тут чекнул доку: https://docs.mongodb.com/manual/faq/diagnostics/#id2 У меня монга образно говоря в докер контейнере. Я могу просто установить лимиты на контейнер по памяти? При наличи что данные лежат на быстрых SSD

Constantin
02.10.2018
10:41:19
У меня максимум 7 ботов
7 ботов, а приложений?

Пасюк Лошадкин
02.10.2018
10:41:38
В смысле?

Constantin
02.10.2018
10:42:12
В смысле?
Как я понял у вас на питоне написано приложение. Один бот — одно приложение?

Constantin
02.10.2018
10:43:28
Скорее всего у вас также connection pool примерно 5-10 коннектов. Но дальше я вам, наверно уже не подскажу куда копать

Google
Bodya
02.10.2018
10:43:56
как я понял slice первым параметром принимает offset, а вторым количество елементов, которое нужно выдать?

Constantin
02.10.2018
10:44:30
как я понял slice первым параметром принимает offset, а вторым количество елементов, которое нужно выдать?
Выше ссылку вам давал The following examples specify an array as an argument to $slice. Arrays take the form of [ skip , limit ], where the first value indicates the number of items in the array to skip and the second value indicates the number of items to return.

Bodya
02.10.2018
10:45:16
Я читал

Bodya
02.10.2018
10:45:48
Не внимательно читал

Там нужно - перед первым аргументом использовать

yopp
02.10.2018
11:01:50
надо давать половину от памяти выделенной контейнеру

yopp
02.10.2018
11:03:16
вторую половину пусть занимает дисковый кеш. WT хранит несжатые страницы в памяти и сжимает только при записи на диск. А значит что в дисковом кеше будут храниться сжатые страницы

Banschikov
02.10.2018
11:03:50
надо давать половину от памяти выделенной контейнеру
Правильно понимаю что вот так можно это задать через конфиг?: wiredTiger: engineConfig: cacheSizeGB: xx

yopp
02.10.2018
11:04:05
да

Пасюк Лошадкин
02.10.2018
11:12:15
Короче) я создал новый монго аккаунт

И там все работает

Не знаю, как починить эти кластеры, которые сломались

AstraSerg
02.10.2018
11:36:00
Не знаю, как починить эти кластеры, которые сломались
Да тут получается, что не кластер проблема, а вы уперлись в лимит по выделенным вашему аккаунут соединениям. Есть возможность увеличить до 150 скажем?

Пасюк Лошадкин
02.10.2018
11:36:20
Если это платно, то нет)

Но мне бы понять: откуда эти соединения

И из за чего их так много

Я смогу сократить их

Google
Пасюк Лошадкин
02.10.2018
11:36:45
Если пойму

У меня максимум 7 ботов подсоединены к базе

AstraSerg
02.10.2018
11:37:36
У меня максимум 7 ботов подсоединены к базе
может кроме ботов там ещё кто-то присоединился?

Пасюк Лошадкин
02.10.2018
11:37:57
Вряд ли. Пароль только у меня

AstraSerg
02.10.2018
11:37:59
логи можете через этот web-интерфейс посмотреть?

Пасюк Лошадкин
02.10.2018
11:38:07
AstraSerg
02.10.2018
11:38:14
Вряд ли. Пароль только у меня
ага, и хакеры - это миф :))

Пасюк Лошадкин
02.10.2018
11:39:31
Кому нужна моя бесплатная база на 500мб

Когда можно создать свою

AstraSerg
02.10.2018
11:40:44
Кому нужна моя бесплатная база на 500мб
никому такая не нужна, но есть сканеры открытых портов и боты, им всё равно что брутфорсить

invzbl3
02.10.2018
11:41:13
Рекомендую описать еще проблему тех поддержке кластеров. Чем подробнее опишете, тем адекватнее будет ответ)

AstraSerg
02.10.2018
11:41:46
на сколько я помню в компасе есть встроенный фаервол. Если IP ваших ботов статические, можете закрыть доступ всем остальным

yopp
02.10.2018
11:42:12
Но мне бы понять: откуда эти соединения
вероятнее всего они «текут»

вы где-то их открываете и не закрываете

ваш драйвер скорее всего поддерживает connection pool

если у вас каждый «бот» это отдельное приложение, проблема может быть и в случае с connection pool. например если ваш драйвер использует пул из 16 соединений, то на 7 приложений это уже 112 штук

Vova
02.10.2018
11:50:15
Как задать лимит для внутреннего массива? Например есть у меня объект { "_id": "123", "field": "qwerty", "strings": [ "1", "2", // Тут ещё 100 строк ] } Как сделать в одном запросе чтобы вернуло вот так { "_id": "123", "field": "qwerty", "strings": [ "1", "2" ] } То есть обрезать массив, в данном примере до 2 вхождений

yopp
02.10.2018
11:51:34
https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/#elemmatch-projection

обратите внимание что это projection, а не query

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