MongoDB - Sharding migrateThread从3小时开始长时间运行

时间:2016-06-20 13:45:50

标签: mongodb sharding

MongoDB版本:3.0.8 引擎:WiredTiger

平衡器太慢,不能移动~30MB卡盘,由于我们观察到长时间运行的查询,这说明它运行了3个多小时。请建议我。

附加了db.currentOp()的长时间运行输出。 谢谢, 阿尔伯特

------ Long Running Query ----

{
    "desc" : "migrateThread",
    "threadId" : "0x95d26a000",
    "opid" : "u001b_s2_rs:-1345098410",
    "active" : true,
    "secs_running" : 9360,
    "microsecs_running" : NumberLong("9360370895"),
    "op" : "none",
    "ns" : "deviceStateEvent.deviceStateEvent",
    "query" : {

    },
    "msg" : "step 2 of 5",
    "numYields" : 0,
    "locks" : {

    },
    "waitingForLock" : false,
    "lockStats" : {
        "Global" : {
            "acquireCount" : {
                "r" : NumberLong(126582),
                "w" : NumberLong(126580)
            }
        },
        "Database" : {
            "acquireCount" : {
                "r" : NumberLong(1),
                "w" : NumberLong(126579),
                "W" : NumberLong(1)
            }
        },
        "Collection" : {
            "acquireCount" : {
                "r" : NumberLong(1),
                "w" : NumberLong(63290),
                "W" : NumberLong(1)
            }
        },
        "oplog" : {
            "acquireCount" : {
                "w" : NumberLong(63288)
            }
        }
    }
}

{
    "desc" : "conn514744",
    "threadId" : "0x4423e3400",
    "connectionId" : 514744,
    "opid" : "u001b_s0_rs:2109828171",
    "active" : true,
    "secs_running" : 9360,
    "microsecs_running" : NumberLong("9360954810"),
    "op" : "query",
    "ns" : "deviceStateEvent.deviceStateEvent",
    "query" : {
        "$msg" : "query not recording (too large)"
    },
    "client_s" : "10.99.8.121:45784",
    "msg" : "step 3 of 6",
    "numYields" : 1063,
    "locks" : {

    },
    "waitingForLock" : false,
    "lockStats" : {
        "Global" : {
            "acquireCount" : {
                "r" : NumberLong(2130),
                "w" : NumberLong(1),
                "R" : NumberLong(1)
            }
        },
        "Database" : {
            "acquireCount" : {
                "r" : NumberLong(1064),
                "w" : NumberLong(1)
            }
        },
        "Collection" : {
            "acquireCount" : {
                "r" : NumberLong(1064),
                "W" : NumberLong(1)
            }
        }
    }   

------- Balancer Error -----------

balancer:
        Currently enabled:  no
        Currently running:  no
        Failed balancer rounds in last 5 attempts:  0
        Migration Results for the last 24 hours:
                116 : Success
                1 : Failed with error 'chunk too big to move', from u001b_s4_rs to u001b_s3_rs
                9 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 7 deletes from previous migration', from u001b_s2_rs to u001b_s4_rs
                402 : Failed with error 'data transfer error', from u001b_s0_rs to u001b_s3_rs
                322 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 6 deletes from previous migration', from u001b_s2_rs to u001b_s4_rs
                8 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 7 deletes from previous migration', from u001b_s0_rs to u001b_s4_rs
                6 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 8 deletes from previous migration', from u001b_s0_rs to u001b_s4_rs
                1 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 8 deletes from previous migration', from u001b_s1_rs to u001b_s4_rs
                1 : Failed with error 'chunk too big to move', from u001b_s4_rs to u001b_s1_rs
                2 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 7 deletes from previous migration', from u001b_s1_rs to u001b_s4_rs
                387 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 6 deletes from previous migration', from u001b_s0_rs to u001b_s4_rs
                35 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 2 deletes from previous migration', from u001b_s0_rs to u001b_s2_rs
                15 : Failed with error 'chunk too big to move', from u001b_s0_rs to u001b_s3_rs
                2 : Failed with error 'chunk too big to move', from u001b_s0_rs to u001b_s2_rs
                192 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 6 deletes from previous migration', from u001b_s1_rs to u001b_s4_rs
                23 : Failed with error 'chunk too big to move', from u001b_s0_rs to u001b_s1_rs
                5 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 8 deletes from previous migration', from u001b_s2_rs to u001b_s4_rs
                77 : Failed with error 'moveChunk failed to engage TO-shard in the data transfer: can't accept new chunks because  there are still 1 deletes from previous migration', from u001b_s0_rs to u001b_s2_rs

1 个答案:

答案 0 :(得分:0)

还有一些删除,所以它不接受新的块。

首先你需要启用平衡器:    转到mongos并运行sh.setBalancerState(true)

这可能适合你

  1. 转到碎片:u001b_s4_rs
  2. 转到mongo控制台并逐步关闭主节点。

    rs.stepDown()

  3. 再次检查状态。