redis cluster實際會遇到的問題

L33
1.fork耗時致使高併發請求延時:
info stats 參數 last_fork_usec 最近一次fork時長
優化:fork耗時跟redis主進程的內存有關係,通常控制redis內存在10G之內
2.AOF阻塞問題
fsync 超過2秒,寫請求就會阻塞防止主從offset誤差太大致使數據丟失
優化:優化硬盤寫入速度
3.主從複製延遲問題
info replication 查詢master的offset和slave的offset.可是也有slave的大於master的,這種狀況須要其餘解決思路
優化:須要腳本進行監控報警
4.主從複製風暴
一旦多個slave掛載master 同時進行全量複製,會致使大量帶寬被佔用
優化:使用樹狀掛載
5.Linux內核優化 提升redis
1) vm.overcommit_memory
0: 檢查有沒有足夠內存,沒有的話申請內存失敗
1: 容許使用內存直到用完爲止
2: 內存地址空間不能超過swap + 50%
若是是0的話,可能致使相似fork等操做執行失敗,申請不到足夠的內存空間
cat /proc/sys/vm/overcommit_memory
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1linux

2) swapiness
    cat /proc/version,查看linux內核版本
        若是linux內核版本<3.5,那麼swapiness設置爲0,這樣系統寧願swap也不會oom killer(殺掉進程)
        若是linux內核版本>=3.5,那麼swapiness設置爲1,這樣系統寧願swap也不會oom killer
        echo 0 > /proc/sys/vm/swappiness
  echo vm.swapiness=0 >> /etc/sysctl.conf

 3) 最大打開文件句柄
      ulimit -n 10032 10032

 4) tcp backlog
     cat /proc/sys/net/core/somaxconn
         echo 511 > /proc/sys/net/core/somaxconn
相關文章
相關標籤/搜索