mongoDB数据库在压测情况下突然挂掉

本文通过一次MongoDB实例在测试环境中因内存占用过高导致宕机的案例,详细解析了MongoDB内存使用机制,默认情况下,MongoDB的内存使用量为其所在机器物理内存的50%减去1GB。文章提供了调整内存使用量的方法,以避免类似问题再次发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在一处业务场景中使用过程中,需要往mongoDB大量的放入数据,然后从测试程序开始,不到10分钟,出现大量报错,查看日志发现,是mongoDB数据连接不上,查看所在机器,发现该机器上的mongoDB实例已经挂掉。

解决

  1. 查看系统日志: /var/logs/message。
    1. 确定是应为内存占有太高,让操作系统把mongoDB实例给干掉了
    2. 查看上面的类似top的内容,发现mongoDB实质上使用的内存只有1.5GB,而机器物理内存高达16G。查看剩余内存,发现,因为是测试机器,上面有mysql,redis,tomcat等的程序都在运行,剩余内存其实也就1.5GB左右。
  2. 我们使用的mongoDB版本为3.2.9 版本,查找了一下 mongodb.com: 3.2: memory-use
    1. By default, the in-memory storage engine uses 50% of physical RAM minus 1 GB. (即默认内存为机器内存的50%-1GB)
    2. 可以通过 --inMemorySizeGB: 这个命令设置

转载于:https://my.oschina.net/dylw/blog/2248625

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值