샤딩된 컬렉션 조각 모음 시작하기
샤딩된 컬렉션 의 조각 모음을 시작하려면 defragmentCollection
옵션을 true
로 설정하다 한 상태에서 configureCollectionBalancing
명령을 사용합니다.
이 작업에 대하여
조각화는 샤딩된 된 컬렉션의 데이터가 불필요하게 많은 수의 작은 청크로 분할되는 경우입니다. 이렇게 하면 해당 컬렉션 에서 실행 되는 CRUD 작업의 작업 시간이 늘어날 수 있습니다. 조각 모음은 작은 청크를 큰 청크로 병합하여 청크 수를 줄여 CRUD 작업 시간을 단축합니다.
CRUD 작업 시간이 허용 가능한 경우 컬렉션을 조각 모음할 필요가 없습니다.
다음 표에는 다양한 MongoDB 버전에 대한 조각 모음 정보가 요약되어 있습니다.
MongoDB 버전 | 설명 |
---|---|
MongoDB 7.0 이상 | 청크는 자동으로 병합됩니다. MongoDB 7.0 에서 컬렉션 조각 모음으로 인한 성능 향상은 MongoDB 6.0 에 비해 낮습니다. 일반적으로 MongoDB 7.0 부터 컬렉션을 조각 모음할 필요가 없습니다. |
MongoDB 6.0 및 7.0이전 버전 | 밸런서가 청크를 마이그레이션하거나 노드가 시작될 때 CRUD 작업 지연이 발생하는 경우에만 컬렉션을 조각 모음합니다. MongoDB 6.0부터는 쓰기 트래픽이 많아도 조각화가 발생하지 않습니다. 청크 마이그레이션은 조각화를 유발합니다. |
MongoDB 6.0 이전 버전 | 조각 모음은 메타데이터 업데이트 중 CRUD 작업 시간이 길어지는 경우에만 사용할 수 있습니다. 6.0 이전 버전의 MongoDB의 경우 많은 삽입 또는 업데이트 작업으로 인해 컬렉션 크기가 크게 증가하면 샤딩된 컬렉션이 조각화됩니다. |
이 작업에서는 test
라는 데이터베이스에서 ordersShardedCollection
이라는 샤딩된 컬렉션 예제를 사용합니다.
이 절차에서 자체 샤딩된 컬렉션과 데이터베이스를 사용할 수 있습니다.
시작하기 전에
mongos
에 연결합니다.
절차
조각 모음이 시작되었는지 확인
명령 출력에서 ok
가 1
인지 확인하여 명령 실행이 성공적인 했음을 나타냅니다.
{ ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1677616966, i: 8 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1677616966, i: 8 }) }
다음 단계
컬렉션의 조각 모음 진행 상황을 모니터 할 수 있습니다. 자세한 내용 은 샤드 컬렉션의 조각 모음 모니터링을 참조하세요.
자세히 알아보기
샤드 상태 인쇄, 참조
db.printShardingStatus()
샤드 상태 세부 정보 조회는 다음을 참조하세요.
sh.status()
샤드 상태 컬렉션 필드를 보려면 샤딩된 컬렉션을 참조하세요.
자세한 내용은 활성
mongos
인스턴스를 참조하세요.MongoDB Atlas를 사용하여 샤드를 모니터링하려면 샤드클러스터 검토를 참조하세요.