dbStats
정의
dbStats
dbStats
명령은 지정된 데이터베이스에 대한 스토리지 통계를 반환합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0, M2 및 M5 클러스터에서 제한적으로 지원 됩니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { dbStats: 1, scale: <number>, freeStorage: 0 } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 설명 |
---|---|
1 | |
선택 사항입니다. 다양한 크기의 데이터에 대한 배율 인수입니다. 크기 데이터를 바이트 단위로 반환하려면 정수가 아닌 배율 인수를 지정하면 MongoDB는 지정된 인수의 정수 부분을 사용합니다. 예를 들어, 배율 인수를 버전 4.2부터 출력에 크기 값의 크기를 조정하는 데 사용되는 | |
선택 사항입니다. 컬렉션에 할당된 여유 공간에 대한 정보를 반환하려면 인스턴스에 많은 수의 컬렉션 또는 인덱스가 있는 경우 여유 공간 사용량 데이터를 가져오면 처리 지연이 발생할 수 있습니다. 여유 공간 세부 정보 없이 |
mongosh
의 db.stats()
함수는 dbStats
에 래퍼(wrapper)를 제공합니다.
행동
명령을 실행하는 데 필요한 시간은 데이터베이스의 총 크기에 따라 달라집니다. 명령은 모든 데이터 파일을 처리해야 하므로 명령을 실행하는 데 몇 초 정도 걸릴 수 있습니다.
예기치 않은 종료 후 정확도
Wired Tiger storage engine을 사용하여 mongod
를 비정상적으로 종료한 후 dbStats
에서 보고하는 개수 및 크기 통계가 부정확할 수 있습니다.
편차의 정도는 마지막 체크포인트와 비정상 종료 사이에 수행된 삽입, 업데이트 또는 삭제 작업의 수에 따라 달라집니다. 체크포인트는 보통 60초마다 발생합니다. 그러나mongod
기본값이 아닌 --syncdelay
설정으로 실행되는 인스턴스는 체크포인트가 다소 빈번하게 발생할 수 있습니다.
mongod
의 각 컬렉션에서 validate
를 실행하여 비정상 종료 후 통계를 복원합니다.
비정상 종료 후
복제본 세트 구성원 국가 제한
복제본 세트 노드에서 실행하는 경우 dbStats
작업을 수행하려면 해당 노드가 PRIMARY
또는 SECONDARY
상태에 있어야 합니다. 노드가 STARTUP2
와 같은 다른 상태에 있으면 작업 오류가 발생합니다.
출력
dbStats.views
데이터베이스의 뷰 수입니다.
dbStats.objects
모든 컬렉션의 데이터베이스에 있는 객체(특히, 문서)의 수입니다.
dbStats.avgObjSize
각 문서의 평균 크기(바이트)입니다. 이것은
dataSize
를 문서 수로 나눈 값입니다. scale 인수는avgObjSize
값에 영향을 주지 않습니다.
dbStats.dataSize
데이터베이스에 저장된 비압축 데이터의 총크기입니다. 문서를 제거하면
dataSize
(이)가 감소합니다 .압축이 활성화된 경우 WiredTiger 스토리지 엔진을 사용하는 데이터베이스의 경우
dataSize
가storageSize
보다 클 수 있습니다. 문서가 축소되면dataSize
가 감소합니다.
dbStats.storageSize
여유 공간을 포함하여 문서 저장을 위해 데이터베이스의 모든 컬렉션에 할당된 디스크 공간의 합계입니다.
문서를 제거하거나 축소해도
storageSize
는 줄어들지 않습니다. 압축이 활성화된 WiredTiger 스토리지 엔진을 사용하는 데이터베이스의 경우 이 값이dataSize
보다 작을 수 있습니다.storageSize
에는 인덱스에 할당된 공간이 포함되어 있지 않습니다. 총 인덱스 크기는indexSize
를 참조하세요.
dbStats.freeStorageSize
문서 저장을 위해 데이터베이스의 모든 컬렉션에 할당된 여유 공간의 합계입니다. 컬렉션에 여유 데이터베이스 저장 공간이 할당되었지만 데이터가 포함되어 있지 않습니다.
freeStorageSize
에는 인덱스에 할당된 여유 공간이 포함되어 있지 않습니다. 총 여유 인덱스 크기는indexFreeStorageSize
를 참조하세요.dbStats
출력에 이 값을 포함하려면 FreeStorage를 1로 설정합니다.버전 5.3.0, 5.2.1, 및 5.0.6에서 업데이트됨
dbStats.indexFreeStorageSize
데이터베이스의 모든 인덱스에 할당된 여유 디스크 공간의 합계입니다. 데이터베이스 저장소 여유 공간은 인덱스에 할당되지만 데이터는 포함하지 않습니다.
indexFreeStorageSize
에는 문서 저장소에 할당된 여유 공간이 포함되어 있지 않습니다. 총 무료 문서 스토리지 크기는freeStorageSize
를 참조하세요.indexFreeStorageSize
진행 중인 인덱스 빌드가 포함되지 않습니다.dbStats
출력에 이 값을 포함하려면 FreeStorage를 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
의 합계입니다.dbStats
출력에 이 값을 포함하려면 FreeStorage를 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 필드는 표시되는 값을 킬로바이트로 설정합니다.