redis.conf 設定的daemonize yes後台執行,使用redis-server redis.conf之後沒有任何反應,以為啟動成功
使用 ps -ef|grep redis 檢視redis程序發現沒有,修改redis.conf配置中的logfile的值,列印日誌例如: logfile "/usr/local/redis/log/redis.log"
再次使用redis-server redis.conf命令啟動redis,之後再從/usr/local/redis/log/redis.log redis的日誌檔案中檢視日誌資訊:
24120:m 29 mar 09:59:05.556 * increased maximum number of open files to 10032 (it was originally set to 1024).
...根據上面warning提示資訊進行處理:
echo 1 > /proc/sys/vm/overcommit_memory
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/enabled
./redis-check-aof --fix
之後重新啟動 redis-server redis.conf成功
解釋:
overcommit_memory引數說明: 設定記憶體分配策略(可選,根據伺服器的實際情況進行設定) /proc/sys/vm/overcommit_memory 可選值:0、1、2。 0, 表示核心將檢查是否有足夠的可用記憶體**用程序使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給應用程序。 1, 表示核心允許分配所有的物理記憶體,而不管當前的記憶體狀態如何。 2, 表示核心允許分配超過所有物理記憶體和交換空間總和的記憶體
redis在dump資料的時候,會fork出乙個子程序,理論上child程序所占用的記憶體和parent是一樣的,比如parent占用的記憶體為8g,這個時候也要同樣分配8g的記憶體給child,如果記憶體無法負擔,往往會造成redis伺服器的down機或者io負載過高,效率下降。所以這裡比較優化的記憶體分配策略應該設定為 1(表示核心允許分配所有的物理記憶體,而不管當前的記憶體狀態如何)。
$ echo "test" > test
參考:
redis後台啟動失敗問題小結
問題描述 在接受專案的時候,遇到乙個奇葩的問題,redis只能臨時啟動,關閉xshell之後,redis服務也就關閉了。試過的辦法 在網上找了許多資料,試過將daemonize no 改為 yes 然後通過 redis server redis.conf 命令,通過配置檔案來啟動redis。但是未能...
redis安裝服務 啟動失敗 親測
當前redis版本 redis cli v redis cli3.0.503 網上給的命令 在redis所在資料夾下執行 redis server service install redis.windows.conf loglevel verbose 問題1 invalid argument dur...
記錄一次redis啟動失敗
解決方法 1 win r 開啟命令列 2 cd至redis目錄,例如 d redis 3 輸入 redis server.exe redis.windows.conf 觀察是否如圖1 至此,已成功 否則,繼續進行如下操作 4 若啟動redis出現 當前日期 creating server tcp l...