无法整理出有关疯狂的MongoDB内存使用情况的*当前*信息

时间:2018-07-23 21:06:18

标签: mongodb

有100万个线程,这非常令人困惑,因为关于mmap或wiredTiger仍然有很多线程,这是一个巨大的混乱。

我会简短-

在具有32g,wiredTiger,高速缓存设置为12g的计算机上的MongoDB 3.6,我的数据库在压缩的磁盘上为800M,db.stats()告诉我它的内存约为3.7G。但是,mongod会在启动后的几分钟内运行到服务器上可用32G的约27倍,然后缓慢爬升几个小时,直到它开始交换并被OOM杀死。

在广阔的世界中,我怎么能发现4G数据库为什么要占用30G以上的RAM?

1 个答案:

答案 0 :(得分:0)

您要调查的一些关键领域如下:

  1. 开始查看日志文件,查找索引编制不正确或正在执行集合扫描的操作。
  2. 寻找任何缓慢的操作并找出原因(资源争用?锁定?等)
  3. 聚合和/或MapReduce操作可能会消耗大量内存,具体取决于这些操作在做什么。这些操作中的大量操作将需要在内存中复制大量数据,并轻松解释您所看到的大量内存使用情况。

您还应该查看您正在运行的MongoDB的版本,并确定补丁是否合适。次要版本有时会包含有关缓存或内存管理的修复程序。