聽《Node服務(wù)線上故障》分享的思考

文章不易,請(qǐng)關(guān)注公眾號(hào) 毛毛蟲的小小蠟筆,多多支持,謝謝。

有任何問題都可以留言咨詢。

思考1

寫入量很大,導(dǎo)致redis的rdb持久化異常

一開始排查到問題,是訪問Redis返回時(shí)長(zhǎng)較長(zhǎng)。

然后看到應(yīng)用服務(wù)的報(bào)錯(cuò)信息:

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

再查看redis組件的日志:

can't save in background: fork: cannot allocate memory

說明是bgsave出錯(cuò)了,無法申請(qǐng)到內(nèi)存。

思考

1、bgsave vs save

save直接調(diào)用rdbSave函數(shù),阻塞redis主進(jìn)程,直到保存完成為止。在主進(jìn)程阻塞期間,服務(wù)器不能處理客戶端的任何請(qǐng)求。

如果數(shù)據(jù)量小,用此命令可能感覺不出有什么區(qū)別,但是當(dāng)數(shù)據(jù)量很大的時(shí)候,就需要謹(jǐn)慎使用這個(gè)命令。

bgsave命令執(zhí)行之后立即返回OK ,然后redis fork出一個(gè)新子進(jìn)程,原來的redis 進(jìn)程(父進(jìn)程)繼續(xù)處理客戶端請(qǐng)求,而子進(jìn)程則負(fù)責(zé)將數(shù)據(jù)保存到磁盤,然后退出。

2、rdb的缺點(diǎn)

詳情 請(qǐng)查看:毛毛蟲的小小蠟筆

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容