我有一个MongoDB集群,包含9个节点(3个碎片,每个3个节点)。我现在正在移除一个碎片,但是这个过程本身运行得非常慢。被删除的碎片的每个节点都存储了~400‘t的数据,我想这并不是太多。但近似结果表明,排水过程在200+日结束。
我想知道是否有办法加快这一进程。我有足够的免费资源(CPU、Mem、IO),我的意思是现在比节点消耗的资源多3倍。我已经看过像_secondaryThrottle或_waitForDelete这样的平衡器设置,但没有取得多大的成功。
MongoDB 4.4.13
发布于 2022-03-24 13:50:48
事实证明,在分析changelog中的事件期间,MongoDB在每个MoveChunk.to/MoveChunk.from事件中等待的传输步骤太长。
目前,MongoDB无法保证在块迁移之前使用sleep以外的任何东西启动的第二次查询的一致性。默认情况下,MongoDB只需等待15分钟就可以删除第二个块并继续前进。所以每块的迁移时间都超过了15分钟。
此外,MongoDB已经有了大约5年的问题。
https://dba.stackexchange.com/questions/309972
复制相似问题