【Redis】修复redis常见三种启动报错
redis 初次启动报错修复
【Redis】修复redis安装后,常见三种启动报错,
第一个警告:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
backlog参数控制的是三次握手的时候server端收到client ack确认号之后的队列值。
第二个警告: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.
第三个警告:you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue 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 thesetting after a reboot. Redis must be restarted after THP is disabled.
解决方案
第二个、第三个警告在文章中都写出了临时解决和永久解决方案。这里列出临时解决方案和永久解决方案。
第一个警告解决方案, 完成修复后均需要重启redis服务生效。
backlog参数控制的是三次握手的时候server端收到client ack确认号之后的队列值。
临时解决方案:
echo 511 > /proc/sys/net/core/somaxconn
永久解决方案:编辑 /etc/sysctl.conf 文件,加入下面参数。在执行 sysctl -p
net.core.somaxconn = 512
第二个警告解决方案,同理。
临时解决方案:
echo vm.overcommit_memory = 1 > /etc/sysctl.conf
永久解决方案:编辑 /etc/sysctl.conf 文件,加入下面参数。在执行 sysctl -p
vm.overcommit_memory = 1
备注:vm.overcommit_memory:
0、表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存
申请失败,并把错误返回给应用进程。
1、表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2、表示内核允许分配超过所有物理内存和交换空间总和的内存
第个三警告解决方案,
临时解决方案:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久解决方案:编辑 /etc/rc.local 文件,加入下面语句,每次重启都能加载语句。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
大页内存动态分配,需要关闭让redis 负责内存管理
将以上配置同步到其他redis 服务器
更多推荐
所有评论(0)