[转帖]Redis服务器启动之后3个警告信息的解决方案

redis,服务器,启动,之后,警告,信息,解决方案 · 浏览次数 : 0

小编点评

**警告信息解释:** 1. **TCP backlog setting:** 确保 Redis 服务器能够处理的 TCP 连接数量超过系统设置的 TCP backlog 设置值 (511)。 2. **Overcommit memory:** 当内存有限时,Redis 服务器可能无法正常运行。增加 `vm.overcommit_memory` 参数可以解决该问题。 3. **Transparent Huge Pages (THP) support:** 开启 THP 支持可能会导致性能下降和内存使用问题。禁用 THP 支持以防止这个问题。 **解决方法:** **1. 第一种方法:** * 编辑 `/etc/default/grub` 文件,添加 `transparent_hugepage=never` 参数。 * 生成新的 GRUB 配置文件 `/boot/grub2/grub.cfg`。 * 重启系统。 **2. 第二种方法:** * 检查 `/proc/meminfo` 文件中的 `HugePages` 字段。 * 如果 `HugePages_Free` 等于 0,则 THP 支持已关闭。 * 启用 THP 支持,并根据提示修改 `/etc/sysctl.conf` 文件。

正文

https://www.cnblogs.com/PatrickLiu/p/8448230.html

 

      今天是年前最后一篇文章了,不想写太多的东西,就写一些有关Redis相关问题的解决方案。当我们启动了Redis服务器之后,会看到3个警告,如果没看到,那是很好的,但是我看到了。看到了就不能不管,所以就好好的解决一下。我把这三个警告的信息截图了,大家可以有更直接的感觉。效果截图如下:

                       

 

             1)、第一个警告信息提示:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128

             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.

               这两个问题的解决方法很简单,晚上也有类似的解决方案。

             解决:

         //针对这两个问题,都要修改/etc/sysctl.conf文件,在文件末尾加入以下两句:

         net.core.somaxconn= 1024
         vm.overcommit_memory = 1



            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.

         这个问题不容易解决,我搞了好久才搞定的,所以必须记录下来,否则以后想看看都不容易。

      大家想了解跟多情况,可以查看该博客 http://docs.fedoraproject.org/en-US/Fedora/21/html/System_Administrators_Guide/sec-GRUB_2_over_Serial_Console.html#sec-Configuring_GRUB_2 。

          第一种方式:

          我们开始第三个问题的解决吧,如果你也是grub2的linux系统,请通过以下步骤关闭大内存页面。

    步骤一、 编辑 /etc/default/grub,在GRUB_CMDLINE_LINUX加入选项 transparent_hugepage=never
    

    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet transparent_hugepage=never"
    GRUB_DISABLE_RECOVERY="true"


    步骤二、 重新生成grub配置文件
    

        [root@linux ~]# grub2-mkconfig -o /boot/grub2/grub.cfg


    步骤三、 重启你的系统

     至此大功告成,如果你使用的是grub,请把选项写入grub.conf文件就好了。

    步骤四、查询hugepage状态
    

       [root@linux ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
        always madvise [never]


    第二种方式:
    

   [root@linux ~]$ grep Huge /proc/meminfo
    AnonHugePages:         0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB

 

         解决了,还是很高兴的。其实这三个警告信息已经提供了解决办法,有的是临时方法,有的是永久方法,只是第三个警告不是那么直接好解决。好了,今天就到这里,我在这里祝福大家新年快乐,我自己也新年快乐。


天下国家,可均也;爵禄,可辞也;白刃,可蹈也;中庸不可能也

与[转帖]Redis服务器启动之后3个警告信息的解决方案相似的内容:

[转帖]Redis服务器启动之后3个警告信息的解决方案

https://www.cnblogs.com/PatrickLiu/p/8448230.html 今天是年前最后一篇文章了,不想写太多的东西,就写一些有关Redis相关问题的解决方案。当我们启动了Redis服务器之后,会看到3个警告,如果没看到,那是很好的,但是我看到了。看到了就不能不管,所以就好

[转帖]编译实战 | 手摸手教你在Windows环境下运行Redis6.x

原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra。 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看只支持linux系统,无奈要么启动虚拟机、要么装在云服务器上。 这不前几天又是这样,刚想用一下Red

[转帖]Redis Info 命令

https://www.runoob.com/redis/server-info.html Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server : 一般 Red

[转帖]redis bigkey 删除问题

一、慢操作分析 redis 的慢操作已经有了,如果没有,我们可以自己去 redis 服务器查看历史的慢日志操作,或者有对应的慢操作监控系统也可以发现问题,这里不做展开。 接下来我们就要看一看为什么这么慢。 看了下项目中的实现代码,结合日志一分析,发现是一个 redis bigkey。 一个 redi

[转帖]Redis连接未释放,造成TCP连接数过多

https://segmentfault.com/a/1190000022704886 早上看到服务器告警通知,TCP连接数比较高,达到5000多,我设置的阈值是5000,正常TCP连接不会这么高,这样的一个阈值我可以提前知道有问题早点解决,不至于后面引起一系列问题,甚至拖垮服务器。 排查 登陆服务

[转帖]一文带你玩转 Redis 的 RESP 协议 !

https://zhuanlan.zhihu.com/p/384251739 RESP 是 Redis 客户端与 Redis 服务器相互通信时使用的一个协议, 全称 REdis Serialization Protocol ,即 redis 串行协议,通俗易懂,也表明了 redis 的特点,串行化(

[转帖]Redis学习笔记--Redis数据过期策略详解

本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了 Redis会自己回收清理不用的数据吗?

[转帖]Redis系列(十七)、Redis中的内存淘汰策略和过期删除策略

我们知道Redis是分布式内存数据库,基于内存运行,可是有没有想过比较好的服务器内存也不过几百G,能存多少数据呢,当内存占用满了之后该怎么办呢?Redis的内存是否可以设置限制? 过期的key是怎么从内存中删除的?不要怕,本篇我们一起来看一下Redis的内存淘汰策略是如何释放内存的,以及过期的key

[转帖]Redis 哨兵模式(Sentinel) 原理

https://juejin.cn/post/6865687858905088008知道的还是太少呢. 为什么需要哨兵模式(Sentinel) 只依靠持久化方案,在服务器下线后无法恢复服务 使用主从复制,在 master 节点下线后,可以手动将 slave 节点切换为 master,但是不能自动完成

[转帖]Redis进阶实践之十七 Redis协议的规范

https://www.cnblogs.com/PatrickLiu/p/8567453.html 一、介绍 Redis客户端使用RESP(Redis的序列化协议)协议与Redis的服务器端进行通信。 虽然该协议是专门为Redis设计的,但是该协议也可以用于其他 客户端-服务器 (Client-Se