`
nicegege
  • 浏览: 590757 次
  • 性别: 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-x64-5.0.10.zip、Redis-x64-5.0.10.msi

    4. 设置配置:在自定义安装中,你可以设置Redis的端口(默认为6379)、是否以服务形式启动、启动时是否以管理员权限运行等。 5. 完成安装:点击“下一步”直至安装完成,系统可能会提示你重启计算机以使更改生效。 6...

    Windows版本Redis-x64-5.0.14安装包

    5. 创建服务后,启动Redis服务: ``` net start RedisService ``` **使用Redis:** 1. 若要使用`redis-cli.exe`与Redis服务器通信,同样在命令提示符中输入: ``` C:\Redis\redis-cli.exe ``` 然后你可以...

    Redis-x64-5.0.14.1.msi

    启动Redis服务可以使用如下命令: ```shell sc start redis-server ``` 或者 ```shell net start redis-server ``` 关闭服务则使用`stop`代替`start`。 Redis支持多种数据类型,除了基本的字符串外,还有哈希...

    redis-7.0.5 win10 x64

    - 使用`redis-server redis.conf`命令启动时,Redis会读取当前目录下的配置文件。 6. 监控与管理: - 使用`INFO`命令获取服务器状态信息,如内存使用、客户端连接等。 - 可以通过`MONITOR`命令实时监控服务器的...

    redis-windows-7.2.3.zip

    1. **redis-server.exe**: 这是Redis服务器的可执行文件,用于启动Redis服务。 2. **redis-cli.exe**: Redis命令行客户端,用于与Redis服务器交互,执行各种命令,如设置键值、读取数据、执行事务等。 3. **redis....

    Redis-windows可直接运行文件

    打开命令提示符,进入Redis解压目录,输入`redis-server.exe redis.windows.conf`启动Redis服务器。 4. 验证安装是否成功。在同一个命令提示符窗口,输入`redis-cli.exe`,然后执行`ping`命令,如果返回`PONG`,则...

    Redis-x64-win-3.2.100+nginx-win

    在与 Redis 结合使用时,Nginx 可以作为前端服务器,将动态请求转发到后端的应用程序,同时也可以缓存静态内容,减轻后端服务器的压力。 fang.txt 文件可能是安装或配置过程中的说明文档,或者是一些额外的使用提示...

    Redis-x64-3.2.100.zip

    - 运行`redis-server.exe redis.windows.conf`启动服务。 - 使用`redis-cli.exe`与Redis服务器进行交互,检查服务器是否正常运行。 3. **安全警告与使用注意事项**: - 描述中提到可能存在病毒提示,这是由于...

    Redis-x64-3.2.100压缩包及使用说明.rar

    4. 输入`redis-server.exe redis.conf`启动Redis服务器,其中`redis.conf`是默认配置文件,你可以根据需求进行修改。 **配置文件`redis.conf`详解:** - `bind 127.0.0.1`:默认只允许本地连接,若需远程访问,需...

    redis-desktop-manager-0.9.9 for Windows

    在使用"redis-desktop-manager-0.9.9.1218.exe"这个文件时,只需在Windows环境下运行安装程序,按照提示完成安装步骤,即可在桌面启动Redis Desktop Manager并开始管理工作中的Redis数据库。通过这款工具,无论是...

    redis-desktop-manager-0.9.5.180825关闭更新弹窗版.zip

    2. `rdm.exe`:这可能是RDM的可执行文件,用户可以直接运行此文件启动Redis Desktop Manager,无需安装。 3. `关闭弹窗.txt`:这个文本文件提供了如何禁用软件更新提示的方法,对于希望避免频繁更新通知的用户来说...

    Redis-x64-3.2.100.msi.zip

    使用说明.txt 文件很可能是包含如何安装、配置和使用Redis的详细步骤和提示,可能包括以下内容: 1. **安装指南**:如何运行msi文件进行安装,以及安装过程中的注意事项。 2. **配置文件**:介绍redis.windows.conf...

    Redis-x64-3.2.100 windows 安装包

    如果选中此选项,Redis将在每次启动Windows时自动运行。 4. **安装过程**:安装程序将复制必要的文件到指定目录,并设置系统环境变量。安装过程可能需要几分钟时间,完成后,可以通过开始菜单或桌面快捷方式启动...

    redis-windows安装包

    打开命令提示符(管理员权限),然后导航到Redis安装目录,使用`redis-server.exe redis.windows.conf`命令启动服务。 5. **测试连接**:启动服务后,你可以使用`redis-cli.exe`命令行客户端来测试连接。在同一个...

    redis-4.0.0.gem

    为了使Redis在系统启动时自动启动,还需要设置启动脚本。这通常涉及编写或修改`/etc/init.d/redis`脚本,并将其添加到启动服务中: ```bash sudo cp /usr/local/src/redis/src/redis-server /etc/init.d/redis sudo...

    redis的桌面管理工具redis-desktop-manager-0.7.6.15

    在安装过程中,通常会提示用户选择安装路径,设置启动快捷方式,以及可能的一些自定义选项。 总的来说,Redis Desktop Manager是一款实用的Redis管理工具,对于开发人员和DBA来说,它提供了一个友好的图形界面,...

    Redis-x64-3.2.zip

    通过这种方式,Redis 可以在系统启动时自动启动,并作为后台服务运行,便于管理和维护。 2. "redis.windows.conf":这是 Redis 的默认配置文件,包含了 Redis 服务器的基本设置,如端口、数据库数量、日志级别等。...

    windows redis客户端连接工具, Redis-x64-3.2.100, 亲测可用

    用户只需双击此MSI文件,按照向导提示即可完成Redis客户端的安装。 在使用这个Windows Redis客户端时,你可能需要了解以下知识点: 1. **安装与启动**:运行Redis-x64-3.2.100.msi,按照屏幕上的指示完成安装。...

Global site tag (gtag.js) - Google Analytics