日常填坑 ——linux服务器,mongodb吃内存,导致服务器缓慢

通过free -h 命令,发现服务器可用内存不足,并发现大量的内存被占用到buff/cache中。
在这里插入图片描述

一类,直接可以通过命令进行释放

sync; echo 3 > /proc/sys/vm/drop_caches

在这里插入图片描述
可以看到,cached的19G内存已经释放。

这种情况还算比较乐观的情况,一般也不用过度分析buff/cached占比这么高的原因,比较中轨中轨的解决方案是,写一个定时脚本进行buff/cached占用内容的释放,这里不做重点展示,可自行google.

第二类,通过释放内存的命令无法正常释放buff/cached占用的内容

遇到这种情况一般就需要具体分析是什么进程导致buff/cached占比这么高?

如果想分析都是哪些进程导致buffers/cached占比这么高,需要安装hcache.

1:安装hcache

网上搜索到比较多的方式是:wget http://7xir15.com1.z0.glb.clouddn.com/hcache
但是已经访问404了,也可以直接访问hcache的github项目,直接下载二进制文件,在拷贝到服务器上,git地址:https://github.com/silenceshell/hcache

2: 授权

chmod +x hcache

3:查看占用buff/cached的进程

hcache -top 10

在这里插入图片描述
发现项目中是mongodb占用了大部分的内存,查看相关资料得知3.4版本后,内存默认使用的是(系统内存-1GB)*50%

在这里插入图片描述

4: 解决方法

通过以下命令启用MongoDB

/usr/bin/mongod --config /etc/mongod.conf --fork --wiredTigerCacheSizeGB 8

关键在于 --wiredTigerCacheSizeGB 8 限制缓存使用内存大小为8GB,这样MongoDB使用的内存就是(8GB-1GB)* 50%

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值