問題一 :somaxconn
redis啟動警告問題:WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 這句話的翻譯大概就是:對一個高負載的環境來說tcp設置128這個值,太小了。 這是我的理解,絕對的還需到官網理解。然后我們可以手動設置,或者設置永久值
臨時解決方案
echo 512 > /proc/sys/net/core/somaxconn
長期解決方案
sudo vim /etc/sysctl.conf #net.core.somaxconn= 1024 然后執行sysctl -p 就可以永久消除這個warning
問題二:overcommit_memory
WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect
解決方案
sudo vim /etc/sysctl.conf #改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效
問題三:Transparent Huge Pages
WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled 意思是:你使用的是透明大頁,可能導致redis延遲和內存使用問題。 執行echo never > /sys/kernel/mm/transparent_hugepage/enabled修復該問題
臨時解決方法
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久解決方法
將其寫入/etc/rc.local文件中 iftest -f /sys/kernel/mm/redhat_transparent_hugepage/enabled; then echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled fi
問題四:bind: Cannot assign requested address
發現啟動redis啟動失敗,看redis的日志問題,提示信息如下
Creating Server TCP listening socket ::1:6379: bind: Cannot assign requested address
解決方案
將 /etc/redis/redis.conf 文件里面的bind改成 bind 0.0.0.0
問題五:MISCONF Redis is configured to save RDB snapshots
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk
解決方案
sudo vim /etc/redis/redis.conf # 將 stop-writes-on-bgsave-error 接着把后面的yes設置為no即可
原文地址:Redis 服務常見的幾個錯誤解決方案
標簽:redis samaxconn bind huge