我在伺服器上運行了一個redis實例,後來使用了一段時間發現redis連接不上去,6379端口也關閉了,看了log都是一連串的aof和rdb記錄,最後一行也是說rdb成功退出。 請問各位redis前輩知道有哪些原因會導致redis埠被終止實例停止運作呢?之前搭建集群也有節點會莫名其妙宕掉,找Log也查不出名堂,跪求經驗指點,謝謝!
认证0级讲师
2.8版本看起來像以後就redis就不支援vm-enabled選項了,原因我估計作者出於效能考量。隨著資料量的增加就會報出記憶體不足,無法寫入,甚至伺服器宕機
特別注意你在坐持久化策略的時候。 比如20G的內存,問題來了,當你對redis插入數據後,redis會異步將數據dump到硬碟中想起來很完美,問題是它會fork一個進程,並佔去同樣大小的內存,你需要的記憶體瞬間為20G+20G =40G
不知道你的業務量是不是很大.
另外你的業務邏輯在快取上是否有記憶體洩漏的情況(常駐快取)。 建議可以寫個腳本監控下伺服器記憶體的使用情況。有時候單看redis的log很難查出問題。
希望我的建議能幫助你
2.8版本看起來像以後就redis就不支援vm-enabled選項了,原因我估計作者出於效能考量。隨著資料量的增加就會報出記憶體不足,無法寫入,甚至伺服器宕機
特別注意你在坐持久化策略的時候。
比如20G的內存,問題來了,當你對redis插入數據後,redis會異步將數據dump到硬碟中
想起來很完美,問題是它會fork一個進程,並佔去同樣大小的內存,
你需要的記憶體瞬間為20G+20G =40G
不知道你的業務量是不是很大.
另外你的業務邏輯在快取上是否有記憶體洩漏的情況(常駐快取)。
建議可以寫個腳本監控下伺服器記憶體的使用情況。有時候
單看redis的log很難查出問題。
希望我的建議能幫助你