问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何设置mongodb最大内存

发布网友 发布时间:2022-04-09 02:35

我来回答

2个回答

懂视网 时间:2022-04-09 06:56

service cgconfig start 

查看cgconfig是否启动

service cgconfig status 

设置开机启动  

chkconfig cgconfig on 


二、配置:

a、先看cgconfig配置文件:

	[root@mongo1 mongodb]# cat /etc/cgconfig.conf 
			mount {
				cpuset	= /cgroup/cpuset;
				cpu	= /cgroup/cpu;
				cpuacct	= /cgroup/cpuacct;
				memory	= /cgroup/memory;
				devices	= /cgroup/devices;
				freezer	= /cgroup/freezer;
				net_cls	= /cgroup/net_cls;
				blkio	= /cgroup/blkio;
			}

			group DBLimitedGroup {
					memory {
							memory.limit_in_bytes = "32212254720" ;

					}


			}

上面配置文件中,mount{...} 这一部分是安装libcgroup后生成的/etc/cgconfig.conf中默认有的,目的是定义各个子系统的挂载点,可以不用管。

为了限制mongodb,这里定义了一个group名字叫做DBLimitedGroup,这个group中定义了对内存memory进行限制,限制的项为memory.limit_in_bytes ,它的值为32212254720(32212254720/1024/1024/1024=30GB),线上服务器是32G的内存,这里设置限制为30G给mongodb。根据自己的情况设置,数值的单位为 byte字节,比如1G=1*1024*1024*1024=1073741824(byte)


b、然后看cgrules.conf 

cat  /etc/cgrules.conf 

# /etc/cgrules.conf
#The format of this file is described in cgrules.conf(5)
#manual page.
#
# Example:
#<user>		<controllers>	<destination>
#@student	cpu,memory	usergroup/student/
#peter		cpu		test1/
#%		memory		test2/
# End of file

*:mongod	memory		DBLimitedGroup/

这个cgrules.conf是配置cgexec命令的默认配置,后面会用到cgexec来执行mongod的程序,"#"开头是注释,不用管,看最后一行。


上面的意思为:

*     所有的用户以及用户组

mongod   mongod程序名(进程)

memory  使用memory子系统中的配置

DBLimitedGroup   cgroup.conf中自定义的group

全部连在一起就是说,执行cgexec时,如果满足“任何用户任何组执行mongod程序,那么被执行的进程(及mongod进程)将满足memory内存子系统中的DBLimitedGroup中的所有限制”

而DBLimitedGroup中的限制就是,限制内存使用为32G。

这样使用cgroup就限制了指定进程(这里是mongod进程)的(物理)内存使用。


配置完成后重新启动cgconfig

 service cgconfig restart


三、运行mongodb

第一台主机:

cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/shard11.conf
cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/shard21.conf
cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/mongosvr.conf
/usr/bin/mongos -f /etc/mongodb/mongos.conf

第二台主机:

cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/shard12.conf
cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/shard22.conf
cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/mongosvr.conf
/usr/bin/mongos -f /etc/mongodb/mongos.conf

地三台主机:

cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/arb1.conf
cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/arb2.conf
cgexec   -g memory:DBLimitedGroup /usr/bin/mongod -f /etc/mongodb/mongosvr.conf
/usr/bin/mongos -f /etc/mongodb/mongos.conf

我这里使用的mongodb的集群,版本的3.2.4


以下是截图:

第一台主机:

技术分享


第二台主机:

技术分享


第三台主机:

技术分享


由于本篇讲述的是cgroup限制mongo内存,因此mongodb的具体配置不在此列出。

本文出自 “xiaotong的博客” 博客,请务必保留此出处http://xiaotong.blog.51cto.com/4312502/1783768

mongodb内存限制初探

标签:cgroup cgconfig cgexec mongodb mongo mongodb内存限制

热心网友 时间:2022-04-09 04:04

内存取决于你的机器内存
限制MongoDB使用的内存

限制MongoDB使用的内存,可以通过对配置文件某一项添加约束。mongod.conf:定义WiredTiger将用于所有数据的内部缓存的最大大小。索引构建消耗的内存 与WiredTiger缓存内存是分开的。值的范围可以从0.25GB到10000GB。从MongoDB 3.4开始,默认的WiredTiger内部缓存大小是以下两者中的较大者:例如,在总共有4GB...

linux下我mongodb存储快要满了,怎么扩充存储大小,且不删除原来的数据...

const int BSONObjMaxUserSize = 16 * 1024 * 1024;到你需要的大小,然后重新编译mongodb。但不要改的太大,因为每一个BSON Object都是要全部读进内存里的。

如何将MongoDB改造成内存数据库

方式一:使用tmpfs作为文件系统 方式二:使用ramfs作为文件系统 这两种方式的思路都差不多,使用一个内存模拟文件系统,由于替换了磁盘文件系统,数据就保留在内存中。方式三:修改源码设置in_memory参数 其实wiredtiger本身就支持将数据保留在内存中不刷盘,MongoDB的内存引擎估计也是利用wt的这一特性。wiredti...

windows下如何限制mongodb的内存使用量呢

可以通过配置mongod启动命令 --wiredTigerCacheSizeGB =2

MongoDB 是什么?看完你就知道了

(3)配置的注意事项 需要估计集群大小,可使用以下命令对现有集合进行分片处理 (4)备份分片集群 备份分片时需要停止均衡器 使用64位机器、32位机器会制约mongodb的内存,使其最大值为1.5GB (2)cpu mongodb 只有当索引和工作集都可放入内存时,才会遇到CPU瓶颈,CPU在mongodb使用中的作用是用来检索数据,如果看到CPU...

怎么样让mongodb每秒钟插入50000条数据???

1. CPU多少?2. 内存多大?3. 插入的每条多大?4. 插入的两条数据之间可有关联性?总的来说,cpu够快,内存够大,插入数据较小(1k左右),插入的两条数据之间无关联性的话,插入的速度是很快的,但是能不能达到50000条就没有测试过了。我自己的机器,2.0G cpu,双核,2g内存,插入速度10000条...

Mongodb在存储文件的时候,会不会造成一个本来300M的视频只存进去了100...

我没有看过mongodb所有的驱动,但是正常来讲,驱动的gridfs应该是让你一部分一部分往gridfs的文件里写数据的,所以对gridfs来说,它应该不知道你这个视频有300,不管什么原因,你要是存到100就不继续往里存了,对gridfs来说这个文件就只有100。只要不是你自己主动停在100,正常来说驱动会告诉你出错...

mongoDb如何在一秒内压入3万条数据

1. CPU多少?2. 内存多大?3. 插入的每条多大?4. 插入的两条数据之间可有关联性?总的来说,cpu够快,内存够大,插入数据较小(1k左右),插入的两条数据之间无关联性的话,插入的速度是很快的,但是能不能达到50000条就没有测试过了。我自己的机器,2.0G cpu,双核,2g内存,插入速度10000条...

mongodb 是把数据放在内存中吗

mongodb的数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,这样提高查询效率,所谓内存数据映射,所以mongodb本身很吃内存,不过3.0版本以后会好很多。

MongoDB内存配置 --wiredTigerCacheSizeGB

https://www.cnblogs.com/funykatebird/articles/12445705.html

mongodb设置内存限制 mongodb存在内存中吗 mongodb查询大量数据内存满 mongo设置内存数据库 mongodb内存 mongodb限制内存 mongodb内存不释放 mongodb内存爆了 mongodb内存增长很快
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
南京华能智慧供应链投资管理合伙企业(有限合伙)怎么样? 被狗紧咬不放怎样快速让其松口?很多人不知道! 如何维修筋膜枪?筋膜枪维修教程? 订车票,和定房间的英语作文(初2水平的)。 初二的英语作文,谁有? 华硕飞行堡垒按哪个键可以进入输入密码的页面 ...说是考核期,不给你假,你会怎么样做?是选择辞职还不请假了... 怎么解决华硕飞行堡垒设置密码的问题 ...昨天给领导续假,领导给发了红包,我该怎么办? 轩辕传奇手游仙鹤池在什么地方 位置详细解析 被宠坏了的泰迪犬有哪些表现呢? 请问为什么很多人都养泰迪犬呢? iPhone5s一直没有用锁屏密码,开机关机之后要密码是什么密码 捡到一个苹果5s 开机需要密码 刷机后需要ID激活 这下怎么办? 淘宝可不可以一键复制别人商品到自己店铺拿佣金 苹果5s重新启动需要输入什么密码 苹果5s怎么设置开机密码? 08年10元奥运纪念币 苹果5s还原后开机需要密码忘了怎么办 苹果5s忘记开机密码怎么办?指纹还在,关键是重新开机之后需要密码。 问一下奥运会发行的纪念币10元,目前市场价大概是多少? 苹果5s,开机需要密码,刷机后需要ID激活怎么解决? iphone5s开机后显示touch id会在iphone重新启动时,要求你输入密码。这手机是锁屏 关于面值10元的奥运纪念币? 苹果5S手机屏幕失灵,修好后开机要输入苹果APP密码吗? 我想问一下2008年奥运会纪念币10元纸币的最新价格~ iphone5s开机后显示touch id会在iphone重新启动时,要求你输入密码。怎么回事? 苹果5S刷机了,开机激活需要id和密码怎么办? iPhone5S开机需要id密码,但是忘了,能解开吗? 请问2008年奥运10元纪念币如何得到? 怎样挑选滚筒洗衣机 如何挑选高品质滚筒洗衣机?支招三大要素 vivox20是多大的内存? 梦见载死人的车经过身边,而且还碰到了车 梦到走在路上,突然看到一个人拉着一辆车,上面有个死人,并且脑浆迸裂,擦肩而过,空气中也到处都是脑 长这么大。第一次做这样的梦!梦见自己和小伙伴开着车去拉死人。还清楚的记得死者的脸!并且还拉着他到处 H3C R300路由器怎么配置上网? 借款合同生效条件都是怎样的 贷款合同生效条件有哪些? 借款合同的生效条件有哪些 借款合同成立及生效条件有哪些 借款合同成立生效的条件有哪些? 法律规定借款合同生效的情形有哪些 借款合同成立但未生效的情形有哪些 海尔洗衣机的单排.单漂.单脱有神马区别? 在单漂洗的过程当中是不是包括脱水过程?还是但漂洗后在单脱水? 请问全自动洗衣机中的单脱水和单排水到底有什么区别呢? MongoDB 到底要吃多少内存 笔记本硬盘温度多少为健康 秋天表达爱情的句子