MongoDB使用150 MB内存是否理想?

kap*_*els 6 mongodb mongodb-php

这是我使用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
Run Code Online (Sandbox Code Playgroud)

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

输出 db.serverStatus();

注意 - 我在运行之前重新启动了mongod db.serverStatus();,内存使用量为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
}
Run Code Online (Sandbox Code Playgroud)

我的一个朋友在一个具有相同内存量(1024 MB)的linode上运行他的WordPress博客.他的MySQL使用率仅为20.48和约.12个用户在他的网站上就像"永远在线"(如永远在线).

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

谢谢你们.

Jus*_*ins 11

"使用"那么多的内存并不像看起来那么糟糕...... MongoDB会(至少看起来)会占用大量的可用内存,但它会让操作系统的VMM告诉它释放内存时需要.(请参阅MongoDB文档中的缓存.)

在大多数情况下,它将"使用"内存用于缓存,这大大加快了速度.

您应该能够通过重新启动MongoDB来释放任何和所有内存.

但是,在某种程度上,MongoDB并没有真正主动"使用"内存......请继续阅读本文中的更多细节.

如何释放Mongodb使用的缓存?


小智 7

内存管理是索利到OS.

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

现在基本上没有办法影响内存使用....并提到:了解内存映射文件,不要将内存映射文件的内存使用量与实际内存使用量混淆.