mongodb - 我如何调试 MongoDB 慢 block 迁移?

标签 mongodb

我正在尝试在集群中移动 block :

mongos>db.adminCommand({ moveChunk: "db.col", find: {_id: ObjectId("58171b29b9b4ebfb3e8b4e42")}, to: "shard_v2"});

{ "millis" : 428681, "ok" : 1 }

在日志中我看到如下记录:

2016-11-08T20:27:05.972+0300 I SHARDING [conn27] moveChunk migrate commit accepted by TO-shard: { active: false, ns: "db.col", from: "host:27017", min: { _id: ObjectId('58171b29b9b4ebfb3e8b4e42') }, max: { _id: ObjectId('58171f29b9b4eb31408b4b4c') }, shardKeyPattern: { _id: 1.0 }, state: "done", cc, ok: 1.0 }

所以我在 430 秒内迁移了 23MB 的数据。真的很慢。

我已经将示例文件上传到“主机”并且上传速度非常快(每秒 7-8MB),所以我不认为这是磁盘或网络问题(集群也没有任何负载(没有事件查询))。我还可以检查哪些内容来提高 block 迁移性能?

最佳答案

性能肯定不受您的设置限制。可能是 MongoDbs 迁移策略试图不影响正常的数据库任务。

DBA stack exchange 上对这个问题有很好的回答:https://dba.stackexchange.com/questions/81545/mongodb-shard-chunk-migration-500gb-takes-13-days-is-this-slow-or-normal

关于mongodb - 我如何调试 MongoDB 慢 block 迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494330/

相关文章:

mongoDB 无法导入 CSV 文件

javascript - 如何查找其数据与给定项目数组中至少一项的条件匹配的文档 - mongoDB

node.js - Mongoose 模式检查模型实例是否第一次保存

mongodb - $lookup 当 foreignField 在嵌套数组中时

javascript - meteor 在模板中迭代列表

java - MongoDB:如何使用 Java(使用或不使用 Spring)将一个带有别名的查询中的特定字段添加到另一查询的结果中?

node.js - [Mongoose] 使用来自异步查询的数据覆盖 toJSON

MongoDB更改流仅显示选定字段

java - Mongo 依靠集合还是依靠游标 - 哪个更快

node.js - expressjs : res. json去除mongoose结果的空子文档