Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"問題


今天在程序中,jedis put數據到redis過程中,“MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk”報錯;

再查看Redis日志,看到有這樣的錯誤提示“Can’t save in background: fork: Cannot allocate memory”,這個提示很明顯"Fork進程時內存不夠用了!",但內存明明還有一個多G;

經網上查詢,Redis在保存數據到硬盤時為了避免主進程假死,需要Fork一份主進程,然后在Fork進程內完成數據保存到硬盤的操作,如果主進程使用了4GB的內存,Fork子進程的時候需要額外的4GB,此時內存就不夠了,Fork失敗,進而數據保存硬盤也失敗了。

解決如下:

執行命令 sysctl vm.overcommit_memory=1

/etc/sysctl.conf 文件添加

vm.overcommit_memory=1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM