教你玩转mongdb占用缓存内存过大导致宏机

本文介绍了MongoDB的内存管理机制,使用内存映射存储引擎来提高读写性能,并通过索引和cgroup来控制内存使用。

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

mongdb内存管理机制:

    目前,Mongdb使用的是内存映射存储引擎,它会把磁盘IO操作转换成内存操作,如果是读操作,内存中多的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能,Mongdb并不干涉内存管理工作,而是把这些工作留给操作系统的虚拟缓存管理器去处理,这样的好处就是简化了mongdb的工作,提高了mongdb的读写效率,但坏处就是会占用很大的内存,读取数据越大占用内存越高;

方便控制内存的机制,一种是加索引,提高效率并且减少内存的占用,但是这种方法不是最有效控制内存的方法;

一种是cgroup这个是linux的一个内核组件,只需要安装控制接口程序即可 :

1.安装并启动:cgroup

2.添加一个内存组:group DBLimitedGroup

3.添加进程限制:指定进程使用此内存组:

4.重启cgroup

6.启动mongdb:cgexec -g 内存组 ./mongod -f {mongdbPath} &

7.给mongdb添加缓存限制:添加一个配置文件或者直接使用以下命令启动:

mongod --dbpath /a/path/to/db --logpath /a/path/to/log --storageEngine wiredTiger --wiredTigerEngineConfigString="cache_size=200M" --fork

不知道具体怎么操作的可以留言讨论,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值