Anton
Привет всем! Нужна помощь с шардированной mongodb. Ситуация такая:
Имеются 4 рабочие шарды c размером одной из баз около 2TB, т.е. по 500 Гигов на шарду.
Потребовалось добавить 5ю шарду и тут возникла проблема с долгой балансировкой. За 1 месяц перенеслось около 15% . Вопрос в след. нормальная ли данная ситуация? либо есть проблема которую я не вижу?
mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5fb65dda1d6aedfdh23832")
}
shards:
{ "_id" : "1_shard", "host" : "1_shard/m1.shard.ru:28100,m2.shard.ru:28100", "state" : 1 }
{ "_id" : "2_shard", "host" : "2_shard/m2.shard.ru:28200,m3.shard.ru:28200", "state" : 1 }
{ "_id" : "3_shard", "host" : "3_shard/m3.shard.ru:28300,m4.shard.ru:28300", "state" : 1 }
{ "_id" : "4_shard", "host" : "4_shard/m4.shard.ru:28400,m5.shard.ru:28400", "state" : 1 }
{ "_id" : "5_shard", "host" : "5_shard/m1.shard.ru:28500,m5.shard.ru:28500", "state" : 1 }
active mongoses:
"4.4.1" : 5
"4.4.2" : 1
autosplit:
Currently enabled: yes
balancer:
Currently enabled: yes
Currently running: yes
Collections with active migrations:
ebase.Message started at Tue Oct 25 2022 11:08:30 GMT+0300 (MSK)
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
21 : Success
17 : Failed with error 'aborted', from 2_shard to 5_shard
677 : Failed with error 'aborted', from 1_shard to 5_shard
databases:
{ "_id" : "config", "primary" : "config", "partitioned" : true }
config.system.sessions
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
1_shard 205
2_shard 205
3_shard 205
4_shard 205
5_shard 204
too many chunks to print, use verbose if you want to force print
{ "_id" : "ebase", "primary" : "4_shard", "partitioned" : true, "version" : { "uuid" : UUID("den6c870-a8b7-446d-9894-66b80ddd1d07"), "lastMod" : 1 } }
ebase.Message
shard key: { "_id" : "hashed" }
unique: false
balancing: true
chunks:
1_shard 32725
2_shard 32725
3_shard 32723
4_shard 32723
5_shard 4695
too many chunks to print, use verbose if you want to force print
{ "_id" : "test", "primary" : "3_shard", "partitioned" : false, "version" : { "uuid" : UUID("94d782h0-a8c2-4129-ad27-a60e9fsd1fe6"), "lastMod" : 1 } }
yopp
у вас достаточно старая версия монги, в 5.x и 6.x ситуацию немного улучшили, можете попробовать аккуратно до 5.x апнутся. С 6.x могут быть проблемы с драйверами, нужно будет протестировать совместимость
yopp
Пожалуйста, воздержитесь от высказываний формата «дело в руках». Это неконструктивно
Ребалансировка достаточно сложная операция, с почти десятком стадий.
Одна из сложностей это момент синхронизации между донором и реципиентом, которая требует координации между тремя компонентами. Если переносимыый чанк меняется, монге может потребовать достаточно много времени на его перенос.
Скорость балансировки от «рук» не зависит, так как настроек которыми можно что-то в балансировке изменить — нет.
В протоколе постепенно что-то меняют в лучшую сторону, но для того чтоб ситуация улучшилась нужно обновлятся до последней стабильной версии.
Недели на ребалансировку больших объёмов, к сожалению, ожидаемое поведение.
В некоторой степени скорость может зависеть от того, упирается ли монга в ресурсы (диск/сеть/цпу) и насколько большой лаг репликации. Если мне память не изменяет, то при миграции чанков используется writeConcern > 1 (или majority?).
Где-то была ручка которой можно его понизить, но это не самый безопасный способ
yopp
Я выше отметил, что текущий FCV должен соотвествовать текущей версии монги, так с более низкой версией новые фичи из протокола скорее всего использоваться не будут
Null
6.0.2 (Sep 28) ◦ 5.0.13 (Sep 29) • 4.4.17 (Sep 28) • 4.2.23 (Sep 29)
🔥 Вышли версии 6.0.2, 5.0.13, 4.4.17 и 4.2.23
⚠️ Версии 6.0.0 и 5.0.0–5.0.10 содержат критическую ошибку, которая может привести к несогласованному состоянию метаданных в шардированном кластере (SERVER-68511).
Ошибка исправлена в версиях 6.0.1+ и 5.0.11+.
ℹ️ Объявлен срок завершения поддержки ветки 4.2: апрель 2023 года.
ℹ️ Восстановлена работа зеркал
• репозитория repo.mongodb.org: https://mirror.db-ai.co
• документации: https://docs.db-ai.co/ (4.2, 4.4, 5.0, 6.0)
• Зеркало repo.mongodb.org доступное из СНГ
• Документация | Зеркало для СНГ
Stable: 6.0.2 (Sep 28) 5.0.13 (Sep 29)
Bugfix: 4.4.17 (Sep 28), Legacy: 4.2.23 (Sep 29, ☠️ Apr '23)
☠️ 4.0.28 (Apr '22) 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20)
Andrey
Я к тому, что на моих 3 серверах с монгой, где только монга, остается свободной, ну максимум 15%
Anton
похоже возможно заббикс не включает кэш, вывод atop
MEM | tot 251.6G | free 1.8G | cache 140.0G | dirty 6.2G | buff 953.5M | slab 6.2G | slrec 5.8G | shmem 1.4M | shrss 0.0M | shswp 0.0M | vmbal 0.0M | hptot 0.0M | hpuse 0.0M
Andrey
я для себя четко вижу, что условно одна и та же конфигурация - железо и в клауде - прям дают разную производительность, которую, ну, видно короче.