背景
操作系統(tǒng):CentOS 7.5
MongoDB:4.4.7
現(xiàn)網(wǎng)有mongodb分片集群共3個(gè)節(jié)點(diǎn)(3個(gè)分片副本集,不包括config副本集),后續(xù)因業(yè)務(wù)增長需擴(kuò)容3個(gè)新節(jié)點(diǎn)(新增3個(gè)分片副本集)。擴(kuò)容的服務(wù)器采用克隆原集群中node3節(jié)點(diǎn)的方式進(jìn)行,故上線時(shí)只需進(jìn)行部分配置修改即可。
現(xiàn)象
上線后集群6個(gè)節(jié)點(diǎn)均正常運(yùn)行數(shù)月,突然有一天開始,新擴(kuò)的3個(gè)節(jié)點(diǎn)中其中一個(gè)節(jié)點(diǎn)(node4)上運(yùn)行的3個(gè)分片mongodb進(jìn)程有一個(gè)down掉了。隨后立即手動把down的進(jìn)程啟起來,查看分片進(jìn)程對應(yīng)的程序日志,操作系統(tǒng)日志等等,未發(fā)現(xiàn)任何異常報(bào)錯(cuò)信息,只能先觀察。
在隨后的時(shí)間里,新擴(kuò)的3個(gè)節(jié)點(diǎn)(node4-6)上的mongodb進(jìn)程會出現(xiàn)不規(guī)律的down的情況,且現(xiàn)象與第一次一樣,沒有任何錯(cuò)誤日志信息,同時(shí)原有的3個(gè)節(jié)點(diǎn)(node1-3)未出現(xiàn)任何異常。為了減少人工每次去啟動進(jìn)程的工作,故在這3個(gè)節(jié)點(diǎn)上運(yùn)行了定時(shí)任務(wù)去檢查進(jìn)程運(yùn)行情況,若發(fā)生down的情況,自動去啟起來,并記錄日志。
分析
在集群異常的期間也翻看了網(wǎng)絡(luò)上關(guān)于mongodb進(jìn)程crash的案例,都沒有相同的情況。分享出來的案例主要集中為兩種情況:1. mongodb程序(OOM)導(dǎo)致操作系統(tǒng)殺掉進(jìn)程;2. mongodb程序bug導(dǎo)致某種特定情況下引起崩潰。但是無論哪種情況,mongodb的日志或系統(tǒng)日志至少會有相應(yīng)的錯(cuò)誤信息。
處理
無奈只能選擇將集群所有節(jié)點(diǎn)升級小版本到最新版4.4.18試試。然而,升級后仍然出現(xiàn)進(jìn)程down的情況,此時(shí)只能祭出大招,重啟服務(wù)器了。驚喜的是重啟后觀察半個(gè)月居然恢復(fù)正常,沒有再次出現(xiàn)問題。。。
總結(jié)
遇到實(shí)在解決不了的問題重啟一般有90%的概率可以解決
。
后續(xù)
重啟后運(yùn)行了一個(gè)多月,又開始出現(xiàn)進(jìn)程莫名消失的情況,憂傷。。。
又過了幾個(gè)月程序正常運(yùn)行,未出現(xiàn)down的情況,懷疑是云主機(jī)環(huán)境異常導(dǎo)致,不再追查了。
浙公網(wǎng)安備 33010602011771號