【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 服务器

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐