首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oom_reaper:内存中的MongoDb

oom_reaper:内存中的MongoDb
EN

Server Fault用户
提问于 2022-06-16 13:48:56
回答 1查看 271关注 0票数 2

我们使用Debian 11和mongodb 5.0.6在三个裸金属服务器(没有虚拟化、没有docker/kubernetes)上运行一个小型mongodb副本集:

machineA: 128 8GB内存,1TB磁盘,主machineB: 128 8GB,1TB磁盘,二级machineC: 8GB RAM,20 8GB磁盘,仲裁器

突然之间,我们在应用程序日志(如"NotWritablePrimary"/"MongoNotPrimaryException“)中出现了错误中断--我们假设连接字符串将确保不会发生中断:

代码语言:javascript
复制
mongodb://machineA:27017,machineB:27017/?replicaSet=MyRepl&waitQueueMultiple=10&readPreference=primaryPreferred

原来,主mongodb实例是由linux内核杀死的,因为它消耗了大量的RAM。复制集现在运行了3个月,在任何时候都没有问题。但突然间,我看到内存消耗如下:

突然之间,mongodb使用了大量的RAM:

就在内核终止了mongod进程之后,SystemD在作为服务运行时重新启动了它。但是在重新启动之后,它再次消耗最大的RAM量,直到它再次死亡。

今天早上,这种行为突然停止了。我们没有改变我们的应用程序上的任何东西,所以现在的问题是:在mongodb进程中,是什么消耗了这么多RAM?

据我所知,WireTiger引擎使用的内存约为可用内存的50%,但这并不能解释机器总内存的最大使用量。我还从Percona mongodb_exporter获得了一些度量,这表明内存由mongodb使用,系统上没有其他进程使用:

有趣的是,次要内存的使用在当时根本没有移动:

有人知道或暗示这是怎么回事吗?

EN

回答 1

Server Fault用户

发布于 2022-07-20 12:32:32

我们发现,我们的一个应用程序服务在某些情况下是疯狂运行的,这对我们来说有点难以理解。

当不断地对MongoDb进行攻击时,内存的使用率似乎越来越高,而不是像我预期的那样使用更多的CPU资源。在某种程度上,被linux内核杀死了。

在我们解决了申请中的问题后,情况就消失了。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1103446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档