redis 從庫數據同步失敗——爬坑記

     早上上班,發現redis的一個slave節點down了一個。對,沒錯,不是數據不同步那麼簡單,連redis服務進程都自動退出了。
             場景:主從同步模式
             master-->slave1
             master-->slave2
             master-->slave3
             info狀態: slave1,slave2 都是state=online,offset=5744884846,lag=1正常狀態,slave3是state=send_bulk,offset=0,lag=0

             1、重啓redis操作
             日誌內容:WARNING overcommit_memory is set to 0
                                  WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value
                                                        WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. 
            a:第一個解決:
            編輯/etc/sysctl.conf ,改vm.overcommit_memory=1,然後sysctl -p 使配置文件生效                             echo 1 > /proc/sys/vm/overcommit_memory
            b:原因就是因爲128太小了。執行echo 511 > /proc/sys/net/core/somaxconn

命令就把這個問題解決了。但是這個只是暫時的。如果想要永久解決,打開ietc/sysctl.conf
vim /etc/sysctl.conf
net.core.somaxconn= 1024
sysctl -p 永久生效
c: 需要解決THP的內存問題 :
echo never > /sys/kernel/mm/transparent_hugepage/enabled
重啓日誌報錯:Short read or OOM loading DB. Unrecoverable error, aborting now.
處理:rm -rf dump.rdb 快照文件後重啓

            重啓redis slave3後出現同步的異常:
            master日誌:Connection with slave 47.254.xx.xxx:6380 lost.
            slave3日誌:I/O error trying to sync withMASTER: connection lost'
            現象:slave3上每次同步完成rdb後會不斷循環同步 即:從庫週期性的在產生temp-rewriteaof-xxx.rdb文件 不斷重複  文件爲375M
            client-output-buffer-limit參數設置的問題,默認爲256Mb 64MB 0 
            控制檯設置增大限制:2G
            CONFIG SET client-output-buffer-limit "slave 2147483648 1073741824 300"
            配置文件redis.conf 
            client-output-buffer-limit slave 2048mb 1024mb 300
            (主從都配置一下)
            命令行設置生效,不需要重啓。
            問題還是存在,每次同步完後不斷同步
            最後解決:從slave2上將rdb文件拷貝到slave3的redis目錄下重啓,解決。
            具體原因。。。。。有待探索
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章