collStats

在本页面

Definition

  • collStats
    • collStats命令返回给定集合的各种存储统计信息。

要运行collStats,请使用db.runCommand( { <command> })方法。

collStats命令具有以下语法:

{
   collStats: <string>,
   scale: <int>,
   verbose: <boolean>
}

该命令包含以下字段:

FieldTypeDescription
collStatsstring目标集合的名称。


如果该集合不存在,则collStats返回错误消息。
| scale | int |可选。输出中用于显示项目大小的比例。默认情况下,输出以字节为单位显示大小。要显示千字节而不是字节,请指定scale1024
比例因子将值四舍五入为整数。
| verbose |布尔值|可选。当true时,collStats增加MMAPv1 存储引擎的报告。
默认为 false。

Behavior

意外关机后的准确度

使用Wired Tiger存储引擎关闭mongod后,collStats报告的大小统计信息可能不准确。

漂移量取决于在最后一个checkpoint和不正常关机之间执行的插入,更新或删除操作的数量。检查点通常每 60 秒出现一次。但是,以非默认--syncdelay设置运行的mongod实例可能具有或多或少的频繁检查点。

在异常关闭后,对mongod上的每个集合运行validate以恢复正确的统计信息。

Example

以下操作在restaurant集合上运行collStats命令,并指定1024字节的小数位数:

db.runCommand( { collStats : "restaurant", scale: 1024 } )

以下文档提供了collStats输出的表示形式。根据集合和存储引擎的配置,输出字段可能包括这些字段的子集。

{
  "ns" : <string>,
  "count" : <number>,
  "size" : <number>,
  "avgObjSize" : <number>,
  "storageSize" : <number>,
  "capped" : <boolean>,
  "max" : <number>,
  "maxSize" :  <number>,
  "wiredTiger" : {
     "metadata" : {
        "formatVersion" : <num>
     },
     "creationString" : <string>
     "type" :  <string>,
     "uri" :  <string>,
     "LSM" : {
        "bloom filters in the LSM tree" : <number>,
        "bloom filter false positives" : <number>,
        "bloom filter hits" : <number>,
        "bloom filter misses" : <number>,
        "bloom filter pages evicted from cache" : <number>,
        "bloom filter pages read into cache" : <number>,
        "total size of bloom filters" : <number>,
        "sleep for LSM checkpoint throttle" : <number>,
        "chunks in the LSM tree" : <number>,
        "highest merge generation in the LSM tree" : <number>,
        "queries that could have benefited from a Bloom filter that did not exist" : <number>,
        "sleep for LSM merge throttle" : <number>
     },
     "block-manager" : {
        "file allocation unit size" : <number>,
        "blocks allocated" : <number>,
        "checkpoint size" : <number>,
        "allocations requiring file extension" : <number>,
        "blocks freed" : <number>,
        "file magic number" : <number>,
        "file major version number" : <number>,
        "minor version number" : <number>,
        "file bytes available for reuse" : <number>,
        "file size in bytes" : <number>
     },
     "btree" : {
        "btree checkpoint generation" : <number>,
        "column-store variable-size deleted values" : <number>,
        "column-store fixed-size leaf pages" : <number>,
        "column-store internal pages" : <number>,
        "column-store variable-size leaf pages" : <number>,
        "pages rewritten by compaction" : <number>,
        "number of key/value pairs" : <number>,
        "fixed-record size" : <number>,
        "maximum tree depth" : <number>,
        "maximum internal page key size" : <number>,
        "maximum internal page size" :<number>,
        "maximum leaf page key size" : <number>,
        "maximum leaf page size" : <number>,
        "maximum leaf page value size" : <number>,
        "overflow pages" : <number>,
        "row-store internal pages" : <number>,
        "row-store leaf pages" : <number>
     },
     "cache" : {
        "bytes read into cache" : <number>,
        "bytes written from cache" : <number>,
        "checkpoint blocked page eviction" : <number>,
        "unmodified pages evicted" : <number>,
        "page split during eviction deepened the tree" : <number>,
        "modified pages evicted" : <number>,
        "data source pages selected for eviction unable to be evicted" : <number>,
        "hazard pointer blocked page eviction" : <number>,
        "internal pages evicted" : <number>,
        "pages split during eviction" : <number>,
        "in-memory page splits" : <number>,
        "overflow values cached in memory" : <number>,
        "pages read into cache" : <number>,
        "overflow pages read into cache" : <number>,
        "pages written from cache" : 2
     },
     "compression" : {
        "raw compression call failed, no additional data available" : <number>,
        "raw compression call failed, additional data available" : <number>,
        "raw compression call succeeded" : <number>,
        "compressed pages read" : <number>,
        "compressed pages written" : <number>,
        "page written failed to compress" : <number>,
        "page written was too small to compress" : 1
     },
     "cursor" : {
        "create calls" : <number>,
        "insert calls" : <number>,
        "bulk-loaded cursor-insert calls" : <number>,
        "cursor-insert key and value bytes inserted" : <number>,
        "next calls" : <number>,
        "prev calls" : <number>,
        "remove calls" : <number>,
        "cursor-remove key bytes removed" : <number>,
        "reset calls" : <number>,
        "search calls" : <number>,
        "search near calls" : <number>,
        "update calls" : <number>,
        "cursor-update value bytes updated" : <number>
     },
     "reconciliation" : {
        "dictionary matches" : <number>,
        "internal page multi-block writes" : <number>,
        "leaf page multi-block writes" : <number>,
        "maximum blocks required for a page" : <number>,
        "internal-page overflow keys" : <number>,
        "leaf-page overflow keys" : <number>,
        "overflow values written" : <number>,
        "pages deleted" : <number>,
        "page checksum matches" : <number>,
        "page reconciliation calls" : <number>,
        "page reconciliation calls for eviction" : <number>,
        "leaf page key bytes discarded using prefix compression" : <number>,
        "internal page key bytes discarded using suffix compression" : <number>
     },
     "session" : {
        "object compaction" : <number>,
        "open cursor count" : <number>
     },
     "transaction" : {
        "update conflicts" : <number>
     }
  },
  "nindexes" : <number>,
  "totalIndexSize" : <number>,
  "indexSizes" : {
          "_id_" : <number>,
          "username" : <number>
  },
  // ...
  "ok" : <number>
}

Output

  • collStats. ns

    • 当前集合的名称空间,格式为[database].[collection]
  • collStats. size

    • 集合中所有记录在内存中的总未压缩大小。 size不包括与集合相关联的任何索引的大小,totalIndexSize字段报告这些索引的大小。

对于不建议使用的 MMAPv1 存储引擎,size包含记录的padding,但不包含记录头,即每个记录 16 字节。

scale参数影响size。数据压缩不会影响此值。

  • collStats. count

    • 此集合中对象或文档的数量。
  • collStats. avgObjSize

    • 集合中对象的平均大小(加上 MMAPv1 的任何padding)。 scale参数不会影响此值。
  • collStats. storageSize

    • 分配给此集合的document个存储的总存储量。 scale参数影响此值。

如果压缩了收集数据(即默认为 WiredTiger),则存储大小将反映压缩后的大小,并且可能小于collStats.size的值。

storageSize不包括索引大小。索引大小请参见totalIndexSize

对于 MMAPv1,storageSize不会随着您删除或收缩文档而减少。

  • collStats. numExtents

    • 连续分配的数据文件区域的总数。仅在使用 MMAPv1 存储引擎时存在。
  • collStats. nindexes

    • 集合上的索引数。所有集合的_id字段上至少都有一个索引。
  • collStats. lastExtentSize

    • 最后分配的范围的大小。 scale参数影响此值。仅在使用mmapv1存储引擎时存在。
  • collStats. paddingFactor

    • 从版本 3.0.0 开始不推荐使用:paddingFactor在 3.0.0 中不再使用,并且仅出于兼容性的原因将其硬编码为 1.0.

paddingFactor仅在使用mmapv1存储引擎时出现。

  • collStats. userFlags
    • 一个数字,指示集合上用户设置的标志。 userFlags仅在使用mmapv1存储引擎时出现。

在 3.0.0 版中进行了更改:userFlags报告usePowerOf2SizesnoPadding标志。

Note

MongoDB 3.0 忽略usePowerOf2Sizes标志。有关更多信息,请参见collModdb.createCollection()

  • collStats. totalIndexSize
    • 所有索引的总大小。 scale参数影响此值。

如果索引使用前缀压缩(即默认为 WiredTiger),则在计算总数时,返回的大小将反映任何此类索引的压缩大小。

  • collStats. indexSizes
    • 该字段指定集合上每个现有索引的键和大小。 scale参数影响此值。

如果索引使用前缀压缩(即默认为 WiredTiger),则返回的大小将反映压缩后的大小。

  • collStats. capped

    • 如果集合为capped,则此字段为“ true”。
  • collStats. max

  • collStats. maxSize

  • collStats. wiredTiger

    • 3.0.0 版中的新功能。

wiredTiger仅在使用 WiredTiger 存储引擎时出现。

本文档包含 WiredTiger 引擎直接报告的数据以及其他用于内部诊断的数据。

  • collStats. indexDetails
    • 3.0.0 版中的新功能。

一个文档,它报告WiredTiger存储引擎中集合中每个索引的数据。其他存储引擎将返回空文档。

本文档中的字段是索引的名称,而值本身是包含存储引擎提供的索引统计信息的文档。这些统计信息供内部诊断使用。