【问题标题】:Is it ideal that MongoDB is using 150 MB memory?MongoDB 使用 150 MB 内存是否理想?
【发布时间】:2011-02-07 05:57:25
【问题描述】:

这是我第一个使用 MongoDB 的项目。

我将它托管在一个 linode(一个使用 XEN 的 VPS)上,我正在使用“top”检查内存使用情况。

mongod 进程似乎使用了大约 150 MB 的内存。当我检查时,它没有任何联系。我使用 RockMongo 来管理它。我的主要数据库统计数据是 -

Size - 464m 
Storage Size - 83.99m
Data Size - 66.4m
Index Size - 49.33m
Collections - 5
Objects - 584850

在 cron 作业运行时会发生很多查询,大约每分钟 75 次甚至更多。但是,正如我之前所说,当我检查内存使用情况时,没有任何连接。

db.serverStatus();的输出

注意 - 我在运行 db.serverStatus(); 之前已经重新启动了 mongod,内存使用量为 40 MB。

{
   "retval": {
     "version": "1.6.5",
     "uptime": 790,
     "uptimeEstimate": 783,
     "localTime": "Mon, 07 Feb 2011 00: 51: 04 -0500",
     "globalLock": {
       "totalTime": 790027671,
       "lockTime": 376381,
       "ratio": 0.00047641495838188,
       "currentQueue": {
         "total": 0,
         "readers": 0,
         "writers": 0
      }
    },
     "mem": {
       "bits": 64,
       "resident": 38,
       "virtual": 957,
       "supported": true,
       "mapped": 288
    },
     "connections": {
       "current": 2,
       "available": 9598
    },
     "extra_info": {
       "note": "fields vary by platform",
       "heap_usage_bytes": 152448,
       "page_faults": 0
    },
     "indexCounters": {
       "btree": {
         "accesses": 1,
         "hits": 1,
         "misses": 0,
         "resets": 0,
         "missRatio": 0
      }
    },
     "backgroundFlushing": {
       "flushes": 13,
       "total_ms": 1,
       "average_ms": 0.076923076923077,
       "last_ms": 0,
       "last_finished": "Mon, 07 Feb 2011 00: 50: 54 -0500"
    },
     "cursors": {
       "totalOpen": 0,
       "clientCursors_size": 0,
       "timedOut": 0
    },
     "opcounters": {
       "insert": 0,
       "query": 57,
       "update": 0,
       "delete": 0,
       "getmore": 0,
       "command": 46
    },
     "asserts": {
       "regular": 0,
       "warning": 0,
       "msg": 0,
       "user": 0,
       "rollovers": 0
    },
     "ok": 1
  },
   "ok": 1
}

我的一个朋友在具有相同数量的 ram (1024 MB) 的 linode 上运行他的 WordPress 博客。他的 MySQL 使用率仅为 20.48 左右。 12 位用户喜欢在他的网站上“永远在线”(就像永远在线一样)。

这让我觉得 MongoDB 对我来说不是一个不错的选择,我应该坚持使用 MySQL!

谢谢大家。

【问题讨论】:

    标签: mongodb mongodb-php


    【解决方案1】:

    “使用”这么多内存并不像看起来那么糟糕...... MongoDB 将(至少似乎)用尽大量可用内存,但它留给操作系统的 VMM 来告诉它释放需要时的记忆。 (请参阅 MongoDB 文档中的 Caching。)

    在大多数情况下,它“使用”该内存进行缓存,从而大大加快了速度。

    您应该能够通过重新启动 MongoDB 来释放所有内存。

    然而,在某种程度上,MongoDB 并没有真正积极地“使用”内存……请继续阅读此答案中的更多详细信息……

    How to release the caching which is used by Mongodb?

    【讨论】:

      【解决方案2】:

      内存管理完全取决于操作系统。

      阅读

      http://blog.mongodb.org/post/101911655/mongo-db-memory-usage

      目前基本上没有办法影响内存使用......并提到:了解内存映射文件,不要将内存映射文件的内存使用与实际内存使用混为一谈。

      【讨论】:

      • 好的,这对我来说很有意义。我想用monit监控mongodb。有什么方法可以知道 mongo 的峰值内存使用量?
      猜你喜欢
      • 2011-10-10
      • 2019-08-04
      • 2021-05-21
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多