计算MongoDB中使用的数据库大小百分比

时间:2018-02-18 22:37:12

标签: mongodb

我目前正在数据库上运行dataSize,然后我收到包含storageSizedataSize的一些信息。

现在我想象

  • storageSize是数据库中的数据量
  • (dataSize/totalSize) * 100是在数据库填满之前我可以存储多少数据。

但是,当我执行db.stats之类的计算以查找数据库中使用的空间百分比时,我得到的数字几乎总是大于100%。

如何使用<table> <tr> <td>this can collapse</td> <td>this can collapse</td> <td class="nocollapse">this should not collapse</td> <td>this can collapse</td> </tr> </table> 告诉我目前使用的数据库空间有多少?

我使用的是Mongo 3.6 atm。

2 个答案:

答案 0 :(得分:2)

简言之:

  • dataSize:此数据库中保存的未压缩数据的总大小。
  • storageSize:分配给此数据库中用于文档存储的集合的总空间量。这是数据库中所有数据范围的大小(以字节为单位),它包括数据范围中已分配但未使用的空间以及数据范围内已删除文档腾出的空间。

the docs中的更多详情。

但是,这些指标都没有告诉您有关MongoDB数据库的最大可用空间的任何信息,因为MongoDB中的存储空间不受每个数据库的限制。相反,您可能想要考虑一下您为MongoDB实例提供了多少磁盘空间,然后评估数据库使用了多少磁盘空间。 Mongo v3.6添加了两个新的dbstats指标,这些指标在这里很有用:

  

<强> dbStats.fsUsedSize

     

MongoDB存储数据的文件系统上正在使用的所有磁盘空间的总大小。

     

<强> dbStats.fsTotalSize

     

MongoDB存储数据的文件系统上所有磁盘容量的总大小。

答案 1 :(得分:0)

我认为使用db.stats(1024)db.runCommand({ dbStats: 1, scale: 1024 }) -- 1024转换大小以KB为单位仅在Mongo v 3.6中可用。它可以为您分配总的磁盘空间以及使用了多少磁盘空间:

dbStats.fsUsedSize

MongoDB存储数据的文件系统上正在使用的磁盘空间的总大小。

dbStats.fsTotalSize

MongoDB存储数据的文件系统上磁盘容量的总大小。

您还可以使用文件系统命令对其进行交叉检查(仅在具有访问权限的情况下才适用于Linux),并且只要您知道存储数据的分区路径即可,该路径可在mongod.cfg

中找到
$ df -h

Filesystem                       Size  Used Avail Use% Mounted on

/dev/mapper/vg--data-data         **70G  9.1G   61G**  13% /data