塊大小在 mongo db 日誌中顯示為 1 KB,即使它設置為 300 MB
我正在執行一個 mongo 集群。
塊大小設置為 300 MB,但今天早上它在日誌中顯示塊大小為 1024 字節。我檢查了目前的操作,它也顯示了 1024 字節的塊。我已經檢查了 monos,所有配置伺服器的塊大小都是 300 MB。
請幫我解決這個問題,因為它突然間把我的分片設置下來了。
這是來自 currentOp 的日誌
{ "opid" : "shard0000:-1945000000", "active" : true, "secs_running" : 0, "microsecs_running" : NumberLong(72072), "op" : "query", "ns" : "DB20150102.locationCount", "query" : { "splitVector" : "DB20150102.locationCount", "keyPattern" : { "articleId" : 1, "host" : 1 }, "min" : { "articleId" : { "$minKey" : 1 }, "host" : { "$minKey" : 1 } }, "max" : { "articleId" : { "$maxKey" : 1 }, "host" : { "$maxKey" : 1 } }, "maxChunkSizeBytes" : 1024, "maxSplitPoints" : 2, "maxChunkObjects" : 250000 }, "client_s" : "192.168.22.106:55881", "desc" : "conn237027", "threadId" : "0x7c6cc55db700", "connectionId" : 237027, "locks" : { "^ibeat20150102" : "R" }, "waitingForLock" : true, "numYields" : 14, "lockStats" : { "timeLockedMicros" : { "r" : NumberLong(32978), "w" : NumberLong(0) }, "timeAcquiringMicros" : { "r" : NumberLong(48048), "w" : NumberLong(0) } } },
從設置進入
{ "_id" : "chunksize", "value" : 250 }
主分片錯誤
2015-01-02T13:04:48.386+0530
$$ conn237049 $$
警告:由於 key { articleId: “”, host: “abc.com” } 2015-01-02T13:04:48.386+0530 ,塊大於 1024 字節$$ conn237049 $$警告:由於 key { articleId: “0”, host: “xyz.com” },塊大於 1024 字節
我在同一個集合的 mongos 日誌中看到了這個
2015-01-02T14:53:58.983+0530
$$ conn58 $$警告:splitChunk 失敗 - cmd: { splitChunk: “DB20150102.locationCount”, keyPattern: { articleId: 1, host: 1 }, min: { articleId: MinKey, host: MinKey }, max: { articleId: MaxKey, host: MaxKey },來自:“shard0000”,splitKeys:$$ { articleId: “”, host: “abc.com” } $$,shardId:“ibeat20150102.locationCount-articleId_MinKeyhost_MinKey”,configdb:“192.168.24.192:27017,192.168.24.54:27017,192.168.24.55:27017”}結果:{誰:{_id:“DB20150102.locationCount,” ,世衛組織:“ibeatdB61:27017:1420185037:147584946:147584946:1475849446:CONN913:869542099”TS:ObjectID(‘54A660AFDC99CFB22D83C27’),流程:“ibeatdB61:27017:1475849446”,時間:新日期(1420189871037),為什麼:“拆分-{ articleId: MinKey, host: MinKey }" }, ok: 0.0, errmsg: “該集合的元數據鎖定” }
我已經採取了這些步驟:
- 停止在伺服器上讀寫
- 停止 mongos 伺服器
- 重新啟動配置伺服器。
- 重啟 mongos 伺服器
- 重新開始讀寫。
仍然出現同樣的問題
我的 Primary Shard 是一個副本集配置如下:
- 主伺服器:512 GB Ram 5 TB 物理記憶體。
- 輔助伺服器 16 GB RAM 5 TB 物理伺服器。
- 仲裁者 8 GB 記憶體。
我的輔助分片在其副本集中具有相同的配置。
你是如何改變塊大小的?您是否遵循本指南?
回顧一下,應該:
- 連接到 mongos
- 切換到配置數據庫
- 發出更改塊大小命令:
db.settings.save( { _id:"chunksize", value: <sizeInMB> } )
據我所知,
warning: chunk is larger than 1024 bytes because of key ...
不會關閉分片,只會導致不平衡的集群。
請使用命令 sh.status() 來確認您有多少塊以及在哪個分片中。從給定的日誌中,我可以看到你(應該)只有一個塊,所以它從來沒有被分割過。錯誤消息“集合的元數據鎖被佔用”意味著鎖數據庫中有“鎖”。你可以看到那些
db.getSisterDB('config').locks.find()
檢查“當”鍵,找到那個“舊”鎖文件。你可以刪除它,之後事情應該會更好。