정의
dbStatsdbStats명령은 지정된 데이터베이스 에 대한 저장 통계를 반환합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0 및 Flex 클러스터에서 제한적으로 지원됩니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { dbStats: 1, scale: <number>, freeStorage: 0 } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 설명 |
|---|---|
1 | |
선택 사항입니다. 다양한 크기의 데이터에 대한 배율 인수입니다. 크기 데이터를 바이트 단위로 반환하려면 정수가 아닌 배율 인수를 지정하면 MongoDB는 지정된 인수의 정수 부분을 사용합니다. 예를 들어, 배율 인수를 버전 4.2부터 출력에 크기 값의 크기를 조정하는 데 사용되는 | |
선택 사항입니다. 컬렉션에 할당된 여유 공간에 대한 정보를 반환하려면 인스턴스 에 많은 수의 컬렉션 또는 인덱스가 있는 경우 여유 공간 사용량 데이터를 가져오면 처리 지연이 발생할 수 있습니다. |
mongosh에서 함수는 주위에 db.stats() 래퍼를 dbStats 제공합니다.
행동
명령을 실행하는 데 필요한 시간은 데이터베이스의 총 크기에 따라 달라집니다. 명령은 모든 데이터 파일을 처리해야 하므로 명령을 실행하는 데 몇 초 정도 걸릴 수 있습니다.
예기치 않은 종료 후 정확도
Wired Tiger 스토리지 엔진 mongod 사용하여 를 비정상적으로 종료한 후 에서 보고하는 개수 및 크기 통계가 dbStats 부정확할 수 있습니다.
편차의 정도는 마지막 체크포인트와 비정상 종료 사이에 수행된 삽입, 업데이트 또는 삭제 작업의 수에 따라 달라집니다. 체크포인트는 보통 60초마다 발생합니다. 그러나mongod 기본값이 아닌 --syncdelay 설정으로 실행되는 인스턴스는 체크포인트가 다소 빈번하게 발생할 수 있습니다.
mongod의 각 컬렉션에서 validate를 실행하여 비정상 종료 후 통계를 복원합니다.
비정상 종료 후
복제본 세트 구성원 국가 제한
복제본 세트 멤버에서 실행dbStats 하려면 작업을 수행하려면 멤버가 PRIMARY 또는 상태 여야 합니다. 멤버가 다른 상태(예:)에 SECONDARY 있는 STARTUP2 경우 작업 오류가 발생합니다.
출력
dbStats.views데이터베이스의 뷰 수입니다.
dbStats.objects모든 컬렉션의 데이터베이스에 있는 객체(특히, 문서)의 수입니다.
dbStats.avgObjSize각 문서 의 평균 크기(바이트)입니다. 이는 를 문서
dataSize수로 나눈 값입니다. 확장하다avgObjSize인수는 값에 영향을 주지 않습니다.
dbStats.dataSize데이터베이스 에 보관된 비압축 데이터의 총 크기입니다.
dataSize문서를 제거 가 감소합니다.압축이 활성화된 경우 WiredTiger 스토리지 엔진을 사용하는 데이터베이스의 경우
dataSize가storageSize보다 클 수 있습니다. 문서가 축소되면dataSize가 감소합니다.
dbStats.storageSize여유 공간을 포함하여 문서 저장을 위해 데이터베이스의 모든 컬렉션에 할당된 디스크 공간의 합계입니다.
문서를 제거 하거나 축소해도
storageSize는 줄어들지 않습니다. 압축이 활성화된 WiredTiger 스토리지 엔진 사용하는 데이터베이스의 경우 이 값이dataSize보다 작을 수 있습니다.storageSize에는 인덱스에 할당된 공간이 포함되어 있지 않습니다. 총 인덱스 크기는 를indexSize참조하세요.
dbStats.freeStorageSize문서 저장을 위해 데이터베이스의 모든 컬렉션에 할당된 여유 공간의 합계입니다. 컬렉션에 여유 데이터베이스 저장 공간이 할당되었지만 데이터가 포함되어 있지 않습니다.
freeStorageSize에는 인덱스에 할당된 여유 공간이 포함되어 있지 않습니다.indexFreeStorageSize총 무료 인덱스 크기는 를 참조하세요.이 값을 출력에 포함하려면
dbStatsfreeStorage를 로 설정하다 1.버전 5.3.0, 5.2.1, 및 5.0.6에서 업데이트됨
dbStats.indexSize사용 가능한 인덱스 공간을 포함하여 데이터베이스의 모든 인덱스에 할당된 디스크 공간의 합계입니다.
참고
필드 에 기본값 인덱스 만 있는 클러스터형
_ìd컬렉션( 세컨더리 인덱스 없음)에서는 컬렉션 에 별도의 인덱스 파일 필요하지 않기 때문에 인덱스 크기가 0으로 표시됩니다.
dbStats.indexFreeStorageSize데이터베이스의 모든 인덱스에 할당된 여유 디스크 공간의 합계입니다. 데이터베이스 저장소 여유 공간은 인덱스에 할당되지만 데이터는 포함하지 않습니다.
indexFreeStorageSize에는 문서 저장 에 할당된 여유 공간이 포함되어 있지freeStorageSize않습니다. 총 무료 문서 저장 크기는 를 참조하세요.indexFreeStorageSize진행 중인 인덱스 빌드가 포함되지 않습니다.이 값을 출력에 포함하려면
dbStatsfreeStorage를 로 설정하다 1.버전 7.0, 6.3.2, 6.0.7, 5.3.0, 5.2.1, 5.0.19 및 5.0.6에서 업데이트되었습니다.
dbStats.totalSize데이터베이스 의 모든 컬렉션에 있는 문서와 인덱스 모두에 할당된 디스크 공간의 합계입니다. 사용 및 여유 저장 공간을 포함합니다. 이는
storageSize와indexSize의 합계입니다.
dbStats.totalFreeStorageSize데이터베이스 의 모든 컬렉션에서 문서와 인덱스 모두에 할당된 여유 저장 공간의 합계입니다. 이는
freeStorageSize와indexFreeStorageSize의 합계입니다.이 값을 출력에 포함하려면
dbStatsfreeStorage를 로 설정하다 1.버전 5.3.0, 5.2.1, 및 5.0.6에서 업데이트되었습니다,
예시
다음 예제는 사용법을 dbStats 보여줍니다.
반환되는 데이터 제한
반환되는 데이터를 단일 필드 로 dbStats 제한하려면 명령에 필드 이름을 추가합니다. 이 예시 indexSize 값을 반환합니다.
db.runCommand( { dbStats: 1 } ).indexSize
컬렉션에 할당된 여유 공간 보기
무료 저장 사용량을 보려면 freeStorage를 로 설정하다 1.
db.runCommand( { dbStats: 1, scale: 1024, freeStorage: 1 } )
출력 예시:
{ db: 'test', collections: 2, views: 0, objects: 1689, avgObjSize: 52.56542332741267, dataSize: 86.7021484375, storageSize: 100, freeStorageSize: 32, indexes: 2, indexSize: 116, indexFreeStorageSize: 36, totalSize: 216, totalFreeStorageSize: 68, scaleFactor: 1024, fsUsedSize: 60155820, fsTotalSize: 61255492, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1646085664, i: 1 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1646085664, i: 1 }) }
freeStorage 공간 필드를 사용하면 강조 표시된 메트릭을 수집하고 표시할 수 있습니다.
scale 필드는 표시되는 값을 킬로바이트로 설정합니다.