`
nicegege
  • 浏览: 579663 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Redis-启动时提示

阅读更多

 

8065:C 30 May 15:13:58.830 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8065:C 30 May 15:13:58.845 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=8065, just started
8065:C 30 May 15:13:58.845 # Configuration loaded
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 4.0.1 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 8065
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

8065:M 30 May 15:13:58.847 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
8065:M 30 May 15:13:58.847 # Server initialized
8065:M 30 May 15:13:58.847 # 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.
8065:M 30 May 15:13:58.848 # 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.
8065:M 30 May 15:13:58.889 * DB loaded from disk: 0.041 seconds
8065:M 30 May 15:13:58.889 * Ready to accept connections

 

 

启动分析:

The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
tcp backlog配置为511,但是linux系统中的设置为128.所以告警了。
[root@localhost 6379]# cat /proc/sys/net/core/somaxconn
128

    

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。
修改文件/etc/sysctl.conf ,添加 vm.overcommit_memory = 1 或者
执行命令 sysctl vm.overcommit_memory=1

1.overcommit_memory是什么?  
overcommit_memory是一个内核对内存分配的一种策略。 具体可见/proc/sys/vm/overcommit_memory下的值      
2.overcommit_memory有什么作用?  
overcommit_memory取值又三种分别为0, 1, 2
overcommit_memory=0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
overcommit_memory=1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
overcommit_memory=2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
--------------------- 
作者:Loopers 
来源:CSDN 
原文:https://blog.csdn.net/longwang155069/article/details/50897026 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

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.
linux内核中,支持允许THP。这是redis不建议的。这将造成延迟和内存使用问题。
为了解决问题,用root身份执行命令
echo never > /sys/kernel/mm/transparent_hugepage/enabled
为了linux重启后还可以保存配置,推荐 写入到/etc/rc.local文件中。
为了THP配置生效,需要重启redis应用。

---------------------------------------------------------------------------------------

transparent_hugepage 是什么

只有64位系统才有transparent_hugepage功能。

从rhel6开始系统将默认对所有程序开启transparent_hugepage(THP),linux内核将尽可能的尝试分配2M的页大小给程序使用,内核空间在内存中自身是2M对齐的,目的是减少内核TLB(现代CPU使用一小块关联内存,用来缓存最近访问的虚拟页的PTE。这块内存称为translation lookaside buffer)的压力,增大page大小自然会减少TLB大小。如果内存没有2M连续大小的空间可分配,内核会回退到分配4KB页的方案。THP页也是可以换出的,这是通过把2M的大页分割成4KB的普通页实现的。

内核通过增加一个khugepaged内核线程,来不停的寻找连续的足够大的尽量对其的内存区域来满足内存分配请求。这个线程会偶尔尝试使用大的内存分配来替换连续的小内存页以最大化THP 的使用。

 

数据库应用不建议开启Transparent HugePages

ORACLE和mongodb数据库不建议开启THP,THP在运行时动态分配内存,可能会带来运行时内存分配的延误。

 

关闭Transparent HugePages

查询系统是否开启了THP命令

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

如果括号中的是always表示开启了,never则表示为开启

 

方案1

在rc.local中增加如下内容

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

或者新建一个service

[root@middle ~]# vi /etc/systemd/system/disable-thp.service

[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target


[root@middle ~]#systemctl daemon-reload

使生效
[root@middle ~]#systemctl start disable-thp
开机即生效
[root@middle ~]#systemctl enable disable-thp
 

方案2

通过修改grub启动参数来实现

[root@middle ~]# cat /etc/default/grub  
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="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

将 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 这一行修改为

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet transparent_hugepage=never"

并执行

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

方案3

以上两个方案不是能实时生效,需要重启系统。如果需要实时生效需要

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

 


分享到:
评论

相关推荐

    redis-desktop-manager-0.8.1.3847

    最新版 redis-desktop-manager-0.8.1.3847

    redis-4.1.4.zip

    redis-4.1.4.gem ,redis集群部署,编译安装ruby后启动redis集群提示缺失redis

    redis-desktop-manager-2021.0.zip

    1.启动提示0xc000007b错误。 下载运行 Microsoft Visual C++ 2015-2019 x64 点击修复选项。 https://download.csdn.net/download/mq6htmk/14983379 2.启动提示找不到 python37.dll。 下载 python37-deps.zip, 解压到...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    3.项目启动的时候报错,关于JNDI的错误提示。 其实也不是错,但是看着不舒服,所以还得解决这个问题。解决这个问题需要在web.xml 中的开始部位加入以下代码。 <context-param> <param-name>spring.profiles....

    redis-2020.2.0.rar

    redis免费的可视化桌面管理工具, Redis Desktop Manager 2020.1.0版本 下载, 安装时会提示需要安装VC++环境, 一定要装, 否则启动时会提示xxx.dll找不到, 该工具为Windows版本, 是一款非常实用的轻量级Redis桌面管理...

    Redis Desktop Manager 2020.1.0 Windows

    Redis可视化工具 Redis Desktop Manager 2020.1.0版本 下载, 安装时会提示需要安装VC++环境, 一定要装, 否则启动时会提示xxx.dll找不到, 该工具为Windows版本, 是一款非常实用的轻量级Redis桌面管理工具

    Redis Desktop Manager 2020.2.0 Windows

    redis免费的可视化桌面管理工具, Redis Desktop Manager 2020.1.0版本 下载, 安装时会提示需要安装VC++环境, 一定要装, 否则启动时会提示xxx.dll找不到, 该工具为Windows版本, 是一款非常实用的轻量级Redis桌面管理...

    windows redis 3.2

    windows 下的redis程序,将文件解压,在环境变量中加入解压路径。在命令提示行里输入 redis-server启动

    Redis 出现错误1067的解决办法

     在Windows CMD命令行启动时提示: D:\soft\Redis>redis-server.exe redis.windows.conf [9560] 15 Jul 10:33:32.364 # Creating Server TCP listening socket 192.168.100.666:6379: 不知道这样的主机。 二、...

    redis安装和配置_动力节点Java学院整理

    启动Redis $redis-server 检查Redis是否在工作? $redis-cli 这将打开一个Redis提示,如下图所示: redis 127.0.0.1:6379> 在上面的提示127.0.0.1是本机的IP地址,6379是Redis服务器运行的端口。现在输入PING...

    CentOS6.5下Redis安装与配置详细步骤

    本文详细介绍Redis单机单实例安装与配置,服务及开机自启动。 (以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [redis版本号中间位是偶数的是稳定版,奇数的为非稳定版]) 一.安装redis 1)下载redis...

    Java开发基于springboot的竞赛报名系统后端源码+sql数据库+部署教程.zip

    9.打开解压后的redis_win文件夹内部的redis-server.exe,启动成功入下图,不要关闭该窗口,关闭即关闭redis,需要重新打卡redis-server.exe进行redis的启动。 10.前端部署开始,安装“安装包”中的VSCodeUserSetup-x...

    PHP Redis扩展无法加载的问题解决方法

    在本篇文章里小编给大家整理的是关于解决PHP Redis扩展无法加载的问题的相关内容,有兴趣的朋友们可以学习下。

    mallplus多租户商城vip版本.zip

    - 如出现无法启动的问题,可以先删除elasticsearch里面的数据再启动 ## mall-portal - 启动mall-portal项目:直接运行com.macro.mall.portal.MallPortalApplication的main方法即可 - 接口文档地址:...

    百度地图开发java源码-MaxBill-RedisPlus:https://gitee.com/MaxBill/RedisPlus/tree

    注意3:v1.1.0以后自己打包的,运行会报错误,因为增加了SSH通道、集群功能,需要将用户目录下的.redis_plus文件夹删掉,然后重新启动就会正常了 RedisPlus 项目介绍 RedisPlus是为Redis可视化管理开发的一款开源...

    ringpop-ui:Ringpop的可视化工具

    通过Homebrew安装Redis,启动并运行实例。 `brew安装redis && redis-server' 背景调查器目前正在开发中。 它使用Redis作为存储来保存会员信息。 默认情况下,RUI在端口6379上侦听Redis。 npm run config提示您...

    restaurant-square

    Redis缓存清除指令:运行终端/命令提示符,cd进入您的redis文件夹。 例如C:\ Program Files \ Redis,运行 redis-cli -h 127.0.0.1 -p 6379 flushall 要创建管理员帐户,请执行以下操作: cd backend\db node db...

    基于 Redis 官方分布式锁文章的 Python +源代码+文档说明

    假设你在本机启动了 3 个 Redis 服务,它们分别是 ` localhost 6379丨localhost 6389丨localhost 6399`,那么运行文件时你会在终端看到如下提示: -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行...

    getaroom_server

    getaroom_server 要启动 getaroom 服务器,请在命令提示符下执行以下操作。 启动 redis redis-server 启动getaroom server 在这个项目的顶层目录:node server.js

    编码:编码名称

    码 代号 待办事项:-添加URL更短代码+哈希器-创建更多的...安装/启动redis服务器 运行word_load 在apicalls.js中更改BASE 运行npm dev重新制作捆绑包 烧瓶运行app.py-h {YOUR_HOST_NAME} -p {YOUR_PORT} 玩得开心!

Global site tag (gtag.js) - Google Analytics