启动redis的警告处理

当Redis配置的连接数超过Linux内核限制时会出现警告。本文解释了内核参数`somaxconn`和`overcommit_memory`对Redis的影响,并提供了解决高并发环境下连接数不足的方法,包括调整内核参数和关闭 Transparent Huge Pages (THP)。操作需以root权限执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

警告1 : WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128

解释:上面写的很清晰,意思是配置 /proc/sys/net/core/somaxconn的值是128,虽然redis.conf中配置的是511,但是linux内核会以无提示的方式将其截断为128。在一个高并发的环境下,128是远远不够的,所以我们要改大一些

办法:将net.core.somaxconn = 2048添加到/etc/sysctl.conf中,然后执行sysctl -p 生效配置

警告2: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

解释:overcommit_memory 表内存分配策略,可选值:0、1、2

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

办法:将vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置

警告3: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建议我们关掉THP,还给出的具体的操作办法,注意必须使用root来操作,否则会失败的

办法:

执行命令

echo never > /sys/kernel/mm/transparent_hugepage/enabled

 并把命令写入到 /etc/rc.local 中

echo never > /sys/kernel/mm/transparent_hugepage/enabled

 

  执行命令 

source /etc/rc.local

都处理后不再警告​:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值