我正在testingMongoDB的档案数据。 我们有一个160M行的集合。 MongoDB实例在12 Gb物理内存盒上占用76.2 Gb虚拟内存;-)交换空。
我读了虚拟内存=物理+交换。
我的情况怎么了? 这是mongoDB本身的问题吗?
谢谢
MongoDB使用内存映射文件 – 这可能比您机器上的实际物理(或交换)大得多。 所使用的总虚拟内存通常是当时磁盘上所有数据的大小。
常驻内存将是代表所使用的实际工作集的统计数据,尽pipe取决于您的资源和使用模式,这将随着时间的推移而增长,并接近主机上的总物理内存。 基本上,除非操作系统看到需要分出旧数据(内存压力),否则它将留在内存中。
当你重新启动MongoDB时,这基本上是从头开始的。 因此,如果您的实际工作数据集有一个已知的时间范围(假设您只使用过去7天),那么在该时间段之后(假设是正常的,可预测的使用)的设置大小将表示您的近似工作集大小的RAM。
更多信息在这里find文档:
http://www.mongodb.org/display/DOCS/Caching
http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage
最后,彩信(这是免费的)做了很好的映射为你随着时间的推移 – 映射,虚拟,居民和非映射以及大量的其他统计资料(查找“我”在每个graphics的解释) 。