Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

db.collection.getShardDistribution()

이 페이지의 내용

  • 정의
  • 구문
  • 출력
  • 행동
db.collection.getShardDistribution()

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

샤딩된 컬렉션 에 대한 데이터 배포 통계를 출력합니다.

getShardDistribution() 메서드의 형식은 다음과 같습니다.

db.collection.getShardDistribution()

참고

getShardDistribution() 의 동작이 MongoDB Shell 버전 2.3.3에서 변경되었습니다.

  • MongoDB Shell 버전 2.3.3부터 getShardDistribution() 에는 일반 샤딩된 데이터만 포함되며 고아 문서는 고려되지 않습니다.

  • MongoDB Shell 버전 2.3.3 이전, getShardDistribution() 은(는) 일반 샤딩된 데이터와 삭제 보류 중인 고아 문서를 모두 고려합니다. 컬렉션 에 고아 문서가 포함되어 있는 경우 getShardDistribution() 는 일반 데이터 측면에서 컬렉션 이 균형을 이루고 있더라도 컬렉션 이 불균형 상태임을 나타낼 수 있습니다. 분리된 데이터를 포함하는 샤드 는 다른 샤드에 비해 더 많은 문서와 더 큰 데이터 크기를 갖지만 청크 수는 동일합니다.

다음은 샤드 컬렉션의 배포에 대한 샘플 출력입니다.

Shard shard01 at shard01/localhost:27018
{
data: '38.14MB',
docs: 1000003,
chunks: 2,
'estimated data per chunk': '19.07B',
'estimated docs per chunk': 500001
}
---
Shard shard02 at shard02/localhost:27019
{
data: '38.14B',
docs: 999999,
chunks: 3,
'estimated data per chunk': '12.71B',
'estimated docs per chunk': 333333
}
---
Totals
{
data: '76.29B',
docs: 2000002,
chunks: 5,
'Shard shard01': [ '50 % data', '50 % docs in cluster', '40B avg obj size on shard' ],
'Shard shard02': [ '49.99 % data', '49.99 % docs in cluster', '40B avg obj size on shard' ]
}
Shard shard01 at <host-a> {
data: <size-a>,
docs: <count-a>,
chunks: <number of chunks-a>,
'estimated data per chunk': <size-a>/<number of chunks-a>,
'estimated docs per chunk': <count-a>/<number of chunks-a>
}
---
Shard shard02 at <host-b>
{
data: <size-b>,
docs: <count-b>,
chunks: <number of chunks-b>,
'estimated data per chunk': <size-b>/<number of chunks-b>,
'estimated docs per chunk': <count-b>/<number of chunks-b>
}
---
Totals
{
data: <stats.size>,
docs: <stats.count>,
chunks: <calc total chunks>,
Shard shard01: [ <estDataPercent-a> % data, <estDocPercent-a> % docs in cluster, stats.shards[ <shard-a> ].avgObjSize avg obj size on shard ],
Shard shard02: [ <estDataPercent-b> % data, <estDocPercent-b> % docs in cluster, stats.shards[ <shard-b> ].avgObjSize avg obj size on shard ]
}

출력 정보는 다음과 같이 표시됩니다.

  • <shard-x> 샤드 이름이 저장된 문자열입니다.

  • <host-x> 호스트 이름이 포함된 문자열입니다.

  • <size-x> 측정 단위를 포함하여 데이터의 크기를 포함하는 숫자입니다(예: b, Mb).

  • <count-x> 샤드에 있는 문서 수를 보고하는 숫자입니다.

  • <number of chunks-x> 샤드에 있는 청크의 수를 나타내는 숫자입니다.

  • <size-x>/<number of chunks-x> 측정 단위를 포함하여 샤드에 대한 청크당 예상 데이터 크기를 반영하는 계산된 값입니다(예: b, Mb).

  • <count-x>/<number of chunks-x> 샤드의 청크당 예상 문서 수를 반영하여 계산된 값입니다.

  • <stats.size> 측정 단위를 포함하여 샤드 컬렉션에 있는 데이터의 전체 크기를 보고하는 값입니다.

  • <stats.count> 샤드 컬렉션의 총 문서 수를 보고하는 값입니다.

  • <calc total chunks> 모든 샤드의 청크 수를 보고하는 계산된 숫자입니다. 예를 들어 다음과 같습니다.

    <calc total chunks> = <number of chunks-a> + <number of chunks-b>
  • <estDataPercent-x> 각 샤드에 대해 데이터 크기를 컬렉션의 전체 데이터 크기에 대한 백분율로 반영하는 계산된 값입니다. 예를 들어 다음과 같습니다.

    <estDataPercent-x> = <size-x>/<stats.size>
  • <estDocPercent-x> 각 샤드에 대한 문서 수를 컬렉션의 총 문서 수의 백분율로 반영하는 계산된 값입니다. 예를 들면 다음과 같습니다.

    <estDocPercent-x> = <count-x>/<stats.count>
  • stats.shards[ <shard-x> ].avgObjSize 측정 단위를 포함한 샤드의 평균 객체 크기를 반영하는 숫자입니다.

Wired Tiger 스토리지 엔진 을 사용하여 mongod 를 비정상적으로 종료한 후 에서 보고한 개수 및 크기 통계가 db.collection.getShardDistribution() 부정확할 수 있습니다.

편차의 정도는 마지막 체크포인트와 비정상 종료 사이에 수행된 삽입, 업데이트 또는 삭제 작업의 수에 따라 달라집니다. 체크포인트는 보통 60초마다 발생합니다. 그러나mongod 기본값이 아닌 --syncdelay 설정으로 실행되는 인스턴스는 체크포인트가 다소 빈번하게 발생할 수 있습니다.

mongod의 각 컬렉션에서 validate를 실행하여 비정상 종료 후 통계를 복원합니다.

비정상 종료 후

돌아가기

db.collection.getIndexes()

이 페이지의 내용