背景

操作系统:CentOS 7.5

MongoDB:4.4.7

现网有mongodb分片集群共3个节点(3个分片副本集,不包括config副本集),后续因业务增长需扩容3个新节点(新增3个分片副本集)。扩容的服务器采用克隆原集群中node3节点的方式进行,故上线时只需进行部分配置修改即可。

现象

上线后集群6个节点均正常运行数月,突然有一天开始,新扩的3个节点中其中一个节点(node4)上运行的3个分片mongodb进程有一个down掉了。随后立即手动把down的进程启起来,查看分片进程对应的程序日志,操作系统日志等等,未发现任何异常报错信息,只能先观察。

在随后的时间里,新扩的3个节点(node4-6)上的mongodb进程会出现不规律的down的情况,且现象与第一次一样,没有任何错误日志信息,同时原有的3个节点(node1-3)未出现任何异常。为了减少人工每次去启动进程的工作,故在这3个节点上运行了定时任务去检查进程运行情况,若发生down的情况,自动去启起来,并记录日志。

分析

在集群异常的期间也翻看了网络上关于mongodb进程crash的案例,都没有相同的情况。分享出来的案例主要集中为两种情况:1. mongodb程序(OOM)导致操作系统杀掉进程;2. mongodb程序bug导致某种特定情况下引起崩溃。但是无论哪种情况,mongodb的日志或系统日志至少会有相应的错误信息。

处理

无奈只能选择将集群所有节点升级小版本到最新版4.4.18试试。然而,升级后仍然出现进程down的情况,此时只能祭出大招,重启服务器了。惊喜的是重启后观察半个月居然恢复正常,没有再次出现问题。。。

总结

遇到实在解决不了的问题重启一般有90%的概率可以解决

后续

重启后运行了一个多月,又开始出现进程莫名消失的情况,忧伤。。。

又过了几个月程序正常运行,未出现down的情况,怀疑是云主机环境异常导致,不再追查了。

posted on 2023-03-08 17:43  lzc_jack  阅读(47)  评论(0编辑  收藏  举报