Serg
MaryJ💻
MaryJ💻
Буду у компа покажу скрины
Roman ;)
/stat@combot
Vladislav
Всем привет. Я к вам за помощью.
Мне необходимо сделать бэкап базы
Но при любом варианте команды mongodump я получаю ошибку.
один из примеров
mongodump --db test --archive=./backup/test_dump.gz --gzip
Failed: error getting collections for database test: error running listCollections. Database: test Err: command listCollections requires authentication
Образ mongo:5
Пробовал так же
mongodump -d <test > -u <rootuser> -p <rootpass> - -authenticationDatabase admin
Выручайте пожалуйста более опытные коллеги.
Дмитрий
Дмитрий
Ну и нужно следить за тем чтобы команда вызывалась с хоста, который добавлен в bindIp ( во моем случае это локалхост)
Roman ;)
Добрый день! Скажите пожалуйста, кто ни будь занимался целенаправленными тестами по WriteConcern? Пересмотрел весь канал, но ничего похожего не нашел. Документацию уже перечитали на несколько раз. Суть вопроса такая. Есть replica set из 7 нод: 1 мастер, 1 арбитр, 5 слэйвов. Пишем всегда через мастера, читаем предпочтительнее со слэйвов. На клиенте используем java драйвер. В ходе тестов пробовали с клиента, через драйвер задавай разные значения WriteConcern. И под нагрузкой при выпадении 50% от кластера, вставка замедляется. Потом решели отказаться через настройку в драйвере и указать WriteConcern на серверах. Но даже при установке WriteConcern в 1, при потере 50% от кластера вставка замедляется.
Возможно кто то скталкивался с таким? Возможно упустили еще какие сопуствующие настройки?
yopp
yopp
При увеличении чтения, меняется пропорция данных в кеше, плюс увеличивается I/O. Вероятно сокращение кластера на 1/2 создает нагрузку которую праймари с тем-же qos обеспечить не может.
В целом, масштабировать через увеличение нод в репликах создаёт наблюдаемые вами ситуации: нода стала недоступна, нагрузка перераспределилась по нодам, нагрузка на оставшиеся ноды перешла критический пороги кластер сильно деградирует или вообще становится недоступным.
По этому для масштабирования рекомендуется использовать шардирование
Roman ;)
Roman ;)
проблема именно со вставкой
yopp
yopp
Чтение точно так-же как запись использует I/O ресурсы
Roman ;)
Вот тут как раз и наблюдаем странность
Roman ;)
вставка работает с замедлением
Roman ;)
а чтение ни разу не страдает
Roman ;)
по этому и задал вопрос
yopp
Увы, без метрик и подробностей того как собран тестовый стол, какие сценарию проверяются, я могу только гипотетически рассуждать.
Первое на что я бы обратил внимание, это на изменение io на праймари. После этого посмотреть не увеличивается ли лаг репликации
yopp
По io это используемая ширина, задержки на w/r, глубина очереди
Roman ;)
условно чтение держится на уровне 2,5К запросов (так приклада выдавала). А запись просела в 2 раза, с 1К до 0,5 и JMeter больше не хотел выдавать. При восстановлении больше 50% процентов (ввели обратно еще одну ноду), вставка вернулась в норму.
yopp
Плюс провести тесты с включеным профайлером на праймари
Roman ;)
В ходе тестов нагрузка как на оставшиеся в строю слэйвы, так и на мастере подскакивает незначительно, CPU с 10% до 30% при 8 ядрах. ОЗУ без изменений.
yopp
В профилях будет информация о локах, по ним составить графики. Вероятно там тоже картина изменится
yopp
Roman ;)
Хорошо, попробуем с профаулером. Спасибо за подсказку.
yopp
И io обязательно померяйте
Roman ;)
yopp
И сеть :) может быть что пока кластер в штатном состоянии, ноды используют репликацию со вторичных нод , а при симуляции отказа праймари не хватает сети
Roman ;)
Еще один вопрос. Он уже касательно conenction Pool.
Roman ;)
Alexandrr
железо уже тюнили, все лимиты подняли
ну как писали выше, нужно брать метрики тачки и смотреть что проседает, потом копать по стороне ограничений оси
недавно сталкивался с лимитами скорости записи файлов в шиндовс долбанной (точнее скорости открытия буффера на операции r/w)
можно поглядеть как вариант
Roman ;)
Еще один вопрос. Он уже касательно conenction Pool.
Редко возникают проблемы с получением подключения из connection Pool. Драйвер не может получить подключение и отваливается по таймауту.
Пробовали ставить таймаут 5 секунд. Отваливается. Т.е. как будто моргает сеть. Но сетевики помочь ни чем не могут. Говорят у них все ровно.
Roman Khonichev
Roman ;)
Roman Khonichev
если однопоточный, то поможет
Roman Khonichev
если получали No suitable server found
Murad
Я вот никак не пойму, что лучше:
a) В цикле запрашивать find_one
b) Один раз выгрузить по условию в список и в цикле доставать уже из списка
При условии что количество документов скажем 50
Roman ;)
По факту используем KMongo драйвер. Он в свою очередь обертка над Java.
Roman Khonichev
Roman Khonichev
Roman ;)
Roman ;)
Roman Khonichev
в логах базы что-нибудь есть?
yopp
yopp
помоему там ограничение на 7, но в вашем случае должно хватить
Roman ;)
Roman ;)
в логах базы что-нибудь есть?
В логах на серверах монги находили ошибки, что произошла потеря соединения до клиента и нет возможности отдать ответ.
Была мысль что это может быть связанно с idleTimeout настройкой. Так как при истечении этого тайм-аута соединения грохаются и потом пул заново наполняется до минимума.
Roman ;)
Но это предположение не подтвердилось, так как такого рода проблема выстреливает очень редко (за пол года поймали 3 раза). А idleTimeout стоит 20 минут.
Roman Khonichev
похоже на сеть, надо настраивать мониторинг админам и смотреть... есть какая-то регулярность когда это происходит?
Roman ;)
Roman ;)
Ранее похожие проблемы ловили из за нехватки ОЗУ. Виртуалка давала показатели ниже чем по факту кушали. Из за этого при нагрузке, возникали похожие проблемы. Докинули ОЗУ до 32 ГБ. Из них сейчас отъедаем 24 ГБ. И в пике, при снятии полного дампа, средствами монги, получаем 28 ГБ.
Alexandrr
Murad
b
Странно что в некоторых ситуациях почти не бывает разнциы
dnacd 🦜
Murad
Jasur Sharofiddinov
hello guys, i m using MongoDB Atlas Search, can we avoid lowercase/uppercase in our full text search?
Alexandrr
Vladyslav
another way is to use Regex, with case ignore, but in this case it will take time when your db is not small
Jasur Sharofiddinov
Jasur Sharofiddinov
Vladyslav
Jasur Sharofiddinov
Jasur Sharofiddinov
Shi
Привет. Использую pymongo. Есть модели Car, Person. у Person есть ref на Car.
Когда получаю все car через find(), то все ок, но мне нужно найти cars, чей хозяин имеет нужный uid.
Сделал как на скрине - пусто и не находит ничего, хотя в базе это точно есть. подскажите кто знает пожалуйста
{'_id': ObjectId(‘…),
''owner': {'_id': ObjectId(‘…’)}
}
Shi
Большое спасибо, попробую
MaryJ💻
Хрен знает че делать
MaryJ💻
При connect нажатии в moncoDB compas
Vladyslav
MaryJ💻