解决MongoDB占用内存过大频繁死机的方法详解

来源:脚本之家  责任编辑:小易  

可能有cache在内存里, 实际还是放在存储里面. 为了提高读取的效率,把常用的数据放到内存中, 达到高效缓存的目的,要看数据库本身的参数设置, 当然数据库缓冲池设置的愈大,读取的效率就越高.

从MongoDB 3.4开始,默认的WiredTiger内部缓存大小是以下两者中的较大者:

应该是为了节约资源吧,大内存页每次加载耗费太多的资源了

50%(RAM-1 GB),或 256 MB

这个数据库默认会吃掉大量的内存作缓存用,目前好像也没办法限制内存使用量,所以建议别把数据库和其他程序放在一台机器上了。

例如,在总共有4GB RAM的系统上,WiredTiger缓存将使用1.5GB RAM()。

top命令查看 这里还可以通过top命令观察mongodb的内存使用情况,如下图,可看到其中的VIRT和RES与上述命令的结果一样 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12603 mongod 20 0 318g 45g 44g S 28.0 72.1 27230:21 mongod free

相反,总内存为1.25 GB的系统将为WiredTiger缓存分配256 MB,因为这是总RAM的一半以上减去1 GB()。

内存取决于你的机器内存

// 4GB

自从怀孕后,孕妈便开始狂吐不止孕吐并不是所有孕妈都会体验,但80%的孕妈都是躲不过的,而且会一直持续到孕中期才会缓解。不少人觉得孕吐反应大小和胎儿的性别有很大的关系,其实目前医学研究并没有任何证据证实这个观点,这和孕妈自身的身体情况有关。目前不少医学研究认为孕吐是胎儿的自我保护机制。当有毒素入侵时,胎宝宝就会分泌出大量激素来增强孕妈嗅觉和呕吐中枢的敏感性,把毒素赶出门外,确保自己的生长发育。生活中的不少气味还会像孕吐发动器,当孕妈闻到鸡蛋、咖啡、鱼、酒、油烟味、香水、香烟、臭脚味、冰箱混合味、化学刺激气味这些生活中浓烈、有刺激性的气味都会让孕妈狂吐不止。想要缓解孕吐,孕

0.5 * (4 GB - 1 GB) = 1.5 GB

也不能完全这么说,只能说中国普遍不讲究发力,不如一些职业拳击先进国家的拳手。这是因为我们国家的整体体育框架是以参加奥运会为主体建立的。奥运拳击为赛会制,要求对拳手有更好的保护,所以护具和回合数少,以前是打点制,更讲求点到即止,追求的不是ko,所以中国体制内拳击,当然很多国家打业余拳击拳击的人从选材就找了豆芽菜类型,高个,臂展长,只求打到人,不求打倒人。就是2013年6月新的减点制规则后,笔者在现场听国家队的教练叫队员,还是不要加力,打速度,打出速度。这就是规则导致的问题。这种问题对小级别影响更为严重一些,大级别拳套的影响小。没办法,这是我们国家的体育发展方向决定了,我们拳击的训练方向,所以邹市

// 1.25GB

虽然每个人都知道吸烟和喝酒都会影响健康,也很多人知道吸烟和喝酒会影响到生殖健康,但是很多人却不引以为然,认为吸一点烟、喝一点酒没什么大不了的,隔壁老王天天喝酒又吸烟,生出来的儿子不也是白白胖胖的,健康得很,殊不知你正在伤害到下一代,为什么吸烟和喝酒会影响到下一代呢?男性吸烟,烟雾中的尼古丁会影响精子的质量,烟雾中的其它有害物质,如一氧化碳、焦油、重金属、苯等,都会导致男性身体方面的异常,精子精子质量下降,而且经常吸烟会导致雄性激素分泌异常,同样也会影响生殖系统的生精功能。另外男性吸烟也会产生二手烟,导致了爱人也吸入了有毒的烟气,所以同样可影响女性的受孕,受精卵着床异常,宫外孕和不孕的风险增加。

0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB

要回答这个问题,我们首先要看一下什么是快乐教育理念?这是由近代西方科学教育实现的倡导者,斯宾塞提出的。斯宾塞在快乐教育中,强调了快乐情绪在教育中的作用。作为教育者,包括我们父母,一定要努力成为一个快乐的教育者,因为教育的目的是让孩子成为一个快乐的人,所以教育的方法也应该是快乐的。那么这里所讲的快乐并不是没有要求,没有期待的放任孩子,让他想做什么就做什么。就如问题描述的,当别人的孩子都在上各种兴趣班,而你家孩子却在快乐玩耍,什么都不干就是快乐养育吗?我认为这是对快乐教育理念的误解。我理解的快乐教育是指父母的一种心态,就是在面对孩子学知识、培养习惯等等过程中,能够积极正面的处理孩子的问题。父母的快

看完文档,我查看了自己的内存使用

$ free -h # 没启动mongod total used free Mem: 3.7G 2.4G 1.3G # 启动mongod total used free Mem: 3.7G 1.8G 364M

直接占满内存了

参考了一部分网上的文章,大致的意思就是说,MongoDB占用了太多内存,被系统kill掉了,所以出现宕机现象

解决方式

添加两个参数

修改配置 mongodb.conf

# 为高速缓存分配的最大内存量;默认为物理RAM的1/2 # wiredTigerCacheSizeGB <float> wiredTigerCacheSizeGB=0.5 # 最大同时连接数,默认1000000

更多关于MongoDB占用内存过大的问题解决方法请查看下面的相关链接

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

如何*MongoDB的最大占用内存

  近期MongoDB在Hack News上是频繁中*。许多人更是声称恨上了MongoDB,David mytton就在他的博客中揭露了MongoDB许多现存问题。然而恨的人有之偏爱的也同样很多,作为回击:Russell Smith带来了多年工作经验的总结。Russell Smith曾担任Ops和大型网站缩放顾问并且帮助过Guardian、Experian等多家公司,MongoDB London User Group的联合创始人。作为MongoDB Master(MongoDB官方认可的MongoDB核心贡献者组织,并通过社区分享自己的专业技术),其参与工作的基础设施单服务器每秒查询超过3万次,每天活跃数据更在1TB以上。

  下面来看Russell对MongoDB一些常见及生僻的问题做出分析:

  32位 vs 64位

  现在大多数的服务器都对32位操作系统实现支持,更有许多新型硬件支持着允许更多RAM的64位操作系统。

  MongoDB也同时发布了32位及64位两个版本的数据库。归结于MongoDB使用的内存映射文件,32位版本只支持2G数据的存储。对于标准的Replica Set,MongoDB只拥有单一的处理策略 —— mongod。如果你想在未来储存2G以上的数据,请使用64位版本的MongoDB。如果拥有分片安装,那么32位版本同样可以使用。

  总结:使用64位版本或者理解32位版本的*。

mysql和mongodb哪个内存占用大

首先是内存映射机制,数据不是持久化到存储设备中的,而是暂时存储在内存中,这就提高了在IO上效率以及操作系统对存储介质之间的性能损耗。(毕竟内存读取最快) 其次,NoSQL并不是不使用sql,只是不使用关系。没有关系的存在,就表示每个数据都...本回答被提问者采纳

linux下怎么查看mongodb的内存占用情况

Mongodb自带命令查看其内存使用情况

其中resident代表物理内存使用情况,单位为M;而virtual为虚拟内存使用情况,mapped是映射到内存的数据大小。这里虚拟内存是mapped的两倍,是因为我们开启了Journal日志,需要在内存中多映射一次,大概就是它的两倍了。如果关闭Journal日志,虚拟内存大小将和mapped大小相当。

bj1-farm1:PRIMARY> db.serverStatus().mem

{

"bits" : 64,

"resident" : 46662,

"virtual" : 326198,

"supported" : true,

"mapped" : 161399,

"mappedWithJournal" : 322798

}

top命令查看

这里还可以通过top命令观察mongodb的内存使用情况,如下图,可看到其中的VIRT和RES与上述命令的结果一样

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

12603 mongod 20 0 318g 45g 44g S 28.0 72.1 27230:21 mongod

安装mongodb的服务器,需要多大内存合适

组件 要求 处理器 处理器类型: Itanium 处理器或速度更快的处理器 处理器速度: 建议:1.0 GHz 或更快 操作系统 Windows Server 2008 R2 64 位 Itanium Windows Server 2008 SP2 64 位Itanium Windows Server 2003 SP2 64 位 Itanium Datacenter Windows Server 2003 SP2 64 位 Itanium Enterprise Windows Server 2003 R2 SP2 64 位 Itanium Datacenter Windows Server 2003 R2 SP2 64 位 Itanium Enterprise 内存 RAM: 最小:1 GB 推荐:4 GB 或更多 最大:操作系统最大内存

  • 本文相关:
  • python监控linux内存并写入mongodb(推荐)
  • 解决mongodb 排序超过内存限制的问题
  • 将mongodb作为redis式的内存数据库的使用方法
  • cgroup限制mongodb进程内存大小
  • mongodb 内存使用情况分析
  • mongodb常用操作命令大全
  • mongodb的基础查询和索引操作方法总结
  • mongodb 常用命令总结
  • mongodb分片技术_动力节点java学院整理
  • mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)
  • mongodb4.0在windows10下的安装与服务配置教程详解
  • 利用mongodb中oplog机制实现准实时数据的操作监控
  • mongodb增加、移除shard server实例
  • mongodb常用的身份验证方式
  • mongodb数据库两阶段提交实现事务的方法详解
  • 如何限制MongoDB的最大占用内存
  • mysql和mongodb哪个内存占用大
  • linux下怎么查看mongodb的内存占用情况
  • 安装mongodb的服务器,需要多大内存合适
  • mongodb是内存数据库吗
  • mongodb 是把数据放在内存中吗
  • mongodb为什么要关闭大页内存
  • 一个mongodb连接占多少内存
  • linux下怎么查看mongodb的内存占用情况
  • 如何设置mongodb最大内存
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved