MongoDB 分片叢集均衡器導致的效能下降
近期,有人反饋其mongodb分片叢集,在載入處理大批次資料時,程式處理十分緩慢並且應用還會報錯: version mismatch detected for 。 現將分析彙總如下備用。
一、問題現象
負責同事反饋9月1日18:52分左右,應用報錯version mismatch detected for。
二、問題分析
--mongodb為4.2.15的三分片叢集且叢集均衡器為啟用狀態
--觀察叢集報錯前後的mongod日誌發現,9月1號18:48分叢集在頻繁的moveChunk
--叢集在頻繁的moveChunk消耗的時間比較長
--9月1日18:55分mongod日誌才提示end of migration,應用報錯叢集正在moveChunk操作
由以上日誌可知,是應用大批次載入資料,導致叢集均衡器分裂chunk並執行遷移,磁碟IO效能低下不能支援mongod快速資料遷移和metadata重新整理, 引起應用查詢不到最新的資料而報錯。
三、 問題處理
a、提高磁碟效能,更換SSD盤
b、業務高峰期臨時關閉叢集均衡器
在mongos節點命令視窗中,切換至 config 資料庫
use config;
執行如下命令檢視Balancer執行狀態,如返回值為空則均衡器空閒
while( sh.isBalancerRunning() ) {
print("waiting...");
sleep(1000);
}
確認執行命令後返回的值為空,可執行關閉Balancer命令
sh.stopBalancer()
c、臨時處理方法重新整理路由器(業務高峰期有風險)
use config;
db.adminCommand({_flushRoutingTableCacheUpdates: ns, syncFromConfig: true})
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2921200/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb 分片叢集建立分片集合MongoDB
- 搭建MongoDB分片叢集MongoDB
- MongoDB 分片叢集搭建MongoDB
- mongodb 分片叢集設定MongoDB
- MongoDB分片叢集常用操作MongoDB
- 高可用mongodb叢集(分片+副本)MongoDB
- MongoDB Sharding(二) -- 搭建分片叢集MongoDB
- Mongodb分散式叢集副本集+分片MongoDB分散式
- linux下Mongodb叢集搭建:分片+副本集LinuxMongoDB
- MongoDB 4.2分片叢集搭建及與3.4分片叢集搭建時的一些異同MongoDB
- Optional 的使用會導致效能下降嗎?
- MongoDB分片叢集節點狀態stateStr:RECOVERING解決MongoDB
- akka 叢集分片
- 分片叢集元件元件
- 部署分片叢集
- 分散式文件儲存資料庫之MongoDB分片叢集分散式資料庫MongoDB
- 【Mongodb】分片複製集環境新增新的分片MongoDB
- MongoDB叢集同步MongoDB
- 分片叢集平衡器Balancer
- redis叢集之分片叢集的原理和常用代理環境部署Redis
- Oracle RAC日常運維-NetworkManager導致叢集故障Oracle運維
- Docker 搭建叢集 MongoDBDockerMongoDB
- mongos分片叢集管理和運維Go運維
- MongoDB最新4.2.7版本三分片叢集修改IP實操演練MongoDB
- 02 . MongoDB複製集,分片集,備份與恢復MongoDB
- MongoDB高可用叢集搭建MongoDB
- 管理 ES 叢集:分片設定及管理
- akka-typed(7) - cluster:sharding, 叢集分片
- MongoDB 分片管理MongoDB
- 基於 Docker 的 MongoDB 主從叢集DockerMongoDB
- MongoDB中的分散式叢集架構MongoDB分散式架構
- mongodb叢集shard_replica的搭建方法MongoDB
- 【最佳實踐】高可用mongodb叢集(1分片+3副本):規劃及部署MongoDB
- 【Mongodb】往分片複製集新增複製成員MongoDB
- mongodb複製集(replica sets)+分片(sharding)環境搭建MongoDB
- Elasticsearch高階之-叢集搭建,資料分片Elasticsearch
- undo truncate 導致qps下降分析
- mongodb之shard分片MongoDB