发布网友 发布时间: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 怎么*文档数量