Mongo服务swap高占用问题解决方案

一,排查过程

1,free -h 查看swap使用情况

2,利用TOP查看显示swap分区高占用,并查看各个进程占用swap使用情况

 

在top命令的输出中,按f键进入字段管理界面,然后添加SWAP列(如果它还没有被选中)。之后,你可以看到每个进程的swap使用情况

操作:按空格 前面变成星 然后esc推出来

查看那个进程的swap高

ps -ef | grep 18428

3,查看Mongo的读写情况

grep cacheSizeGB /usr/local/mongocluster/etc/mongod_*  #查看配置文件

查看MongoD中的cacheSizeGB大小,发现cachesize占用低。

二,故障原因

高占用 swap 资源的原因 是当前配置的 cacheSizeGB 过低,导致数据处理速度无法跟上数据的生成速率。未及时处理的数据被积压在系统的 buffer cache 中,从而占用了大量的物理内存。 当物理内存使用量达到一定阈值时,系统将开始使用 swap 空间。这种情况不仅影响系统的性能,还可能导致响应时间的延迟。因此,建议增加 cacheSizeGB 以提升数据处理能力,从而减少对 swap 的依赖,优化物理内存的使用效率。

三,解决方案

解决方法:增加mongo集群的cacheSizeGB和关闭swap

以下为操作步骤:

1,增加mongo集群的cacheSizeGB

配置修改

步骤一:进入每台mongo服务器上分别修改下面4个配置文件

将以下3个配置文件中cacheSizeGB值从6改为18 

vi /mongocluster/etc/mongod_27021.conf

步骤二:修改该/usr/local/mongocluster/etc/mongod_cs.conf 配置文件中的cacheSizeGB大小

将以下配置文件中cacheSizeGB值从4改为12 

vi /usr/local/mongocluster/etc/mongod_cs.conf

重启mongocluster服务

        步骤一:重新启动每台Mongo服务器的mongocluser服务

                注意这里要一台一台重启 不要三台一起执行,每台执行命令完毕后再到下一台mongo服务器执行重启

/etc/init.d/mongocluser restart

        步骤二:之后启动每台Mongo服务器的mongos服务

/etc/init.d/mongos restart

2,关闭swap分区

查看当前swap空间情况
swapon --show
关闭swap空间

注意:执行速度较慢,后台需要释放swap才能关闭,所以要多等会

swapoff -a
关闭后再次查看当前swap空间情况,确认关闭完成
swapon --show

3,操作完成后,观察服务是否正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值