解决redis启动时的警告

如果我们什么都不修改,redis启动时会有三个警告

警告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 = 1024添加到/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

解释:THP(透明大页)的知识请参考这篇博客 https://www.cnblogs.com/kerrycode/p/4670931.html

redis建议我们关掉THP,还给出的具体的操作办法,注意必须使用root来操作,否则会失败的

办法:执行命令 echo never > /sys/kernel/mm/transparent_hugepage/enabled

            并把命令 echo never > /sys/kernel/mm/transparent_hugepage/enabled 写入到 /etc/rc.local 中

            执行命令 source /etc/rc.local

全部修复后,启动redis,已经不报任何警告了,如下图

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于无法启动 Redis 的问题,可以尝试以下几个步骤来排查和解决: 1. 检查 Redis 配置文件:确认 Redis 的配置文件是否正确。在 CentOS 中,Redis 的配置文件通常位于 `/etc/redis.conf`。您可以使用文本编辑器打开该文件并检查配置项。 2. 检查端口占用情况:确保 Redis 使用的端口没有被其他进程占用。您可以使用 `netstat -tuln | grep <port>` 命令来检查指定端口是否被占用。如果该端口被占用,您可以选择修改 Redis 配置文件中的端口号。 3. 检查日志文件:尝试查看 Redis 的日志文件,通常位于 `/var/log/redis/redis-server.log`。检查日志中是否有任何错误或警告信息,这有助于确定问题所在。 4. 检查 Redis 运行用户和权限:确保 Redis 运行的用户具有适当的权限。默认情况下,Redis 以 `redis` 用户身份运行。您可以使用 `ps aux | grep redis-server` 命令来检查 Redis 进程的运行用户。如果需要修改运行用户或权限,请相应地进行更改。 5. 检查启动脚本:检查 Redis 启动脚本是否存在,并且具有执行权限。在 CentOS 中,Redis 启动脚本通常位于 `/etc/init.d/redis`。您可以使用 `ls -l /etc/init.d/redis` 命令来检查文件的权限。 6. 检查启动方式:尝试手动启动 Redis,以便更详细地了解问题所在。您可以使用以下命令手动启动 Redis: ```shell redis-server /etc/redis.conf ``` 如果有任何错误提示,可以根据错误信息进行进一步的排查和修复。 如果您完成了以上步骤仍然无法解决问题,建议提供更多关于您的环境和错误信息的详细描述,以便我们更好地帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值