[MongoDB] shard별 chunk count 출력해주는 js 스크립트 (mongos shell에서 실행) [print chunks count per shard/collection]
DataBase 2022. 11. 15. 14:20
MongoDB 3.X 구버전도 가능.
아래 소스코드를 복사해서 mongos shell에 붙여넣고 실행시키면,
(function(){
var configDb = db.getSisterDB('config');
var shardList = [];
configDb.shards.find().sort({_id:1}).forEach(function(doc){
shardList.push(doc._id);
});
configDb.collections.find().forEach(function(doc){
var colName = doc._id;
var totalCount = configDb.chunks.count({ns:colName});
print('\n\n['+colName+']\n--------------------------------------');
print('TOTAL = '+totalCount);
for (var i=0; i<shardList.length; i++) {
var shardName = shardList[i];
var cnt = configDb.chunks.count({ns:colName, shard:shardName});
var per = (cnt / totalCount) * 100;
print(shardName+' = '+cnt+' ('+per.toFixed(1)+' %)');
}
});
})()
이런 식으로 출력됨. 필요한 내용 추가나 필터링, 포맷 등은 소스코드 변경해서 입맛에 맞게 하면 되고.
[DB_NAME.COLLECTION_NAME1]
--------------------------------------
TOTAL = 4000
shard_001 = 1000 (25.0 %)
shard_002 = 1000 (25.0 %)
shard_003 = 1000 (25.0 %)
shard_004 = 1000 (25.0 %)
[DB_NAME.COLLECTION_NAME2]
--------------------------------------
TOTAL = 1000
shard_001 = 250 (25.0 %)
shard_002 = 250 (25.0 %)
shard_003 = 250 (25.0 %)
shard_004 = 250 (25.0 %)
'DataBase' 카테고리의 다른 글
[MongoDB] vm.max_map_count is too low warning 발생시 (0) | 2023.05.09 |
---|---|
[MongoDB] mongorestore의 --oplogReplay로 oplog restore를 하려할 때 Failed: restore error: error applying oplog: applyOps: not authorized on admin to execute 에러 발생 (0) | 2023.02.02 |
[MongoDB] logrotate (0) | 2022.07.15 |
[MongoDB] slow query 지속적으로 발생시 (0) | 2022.07.14 |
[MongoDB] MongoDB 3.0 shard 제거 취소/중지 (stop removeShard) (0) | 2022.05.12 |