zoukankan      html  css  js  c++  java
  • redis linux内核优化方案

    优化案例

    方法1:在redis-cli命令行使用:info clients可以查看当前的redis连接数

    127.0.0.1:6379> info clients
    #Clients
    connected_clients:621
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0
    127.0.0.1:6379>

    方法2:config get maxclients 可以查询redis允许的最大连接数

    127.0.0.1:6379> CONFIG GET maxclients
        ##1) "maxclients"
        ##2) "10000"
    127.0.0.1:6379>

    1、修改linuxTCP监听的最大容纳数量

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

    在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核默默地将这个值减小到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的效果。
    echo 511 > /proc/sys/net/core/somaxconn
    注意:这个参数并不是限制redis的最大链接数。如果想限制redis的最大连接数需要修改maxclients,默认最大连接数为10000

    2、修改linux内核内存分配策略

    1
    2
    3
    错误日志: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

       redis在备份数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。
    内存分配策略有三种
    可选值:0、1、2。
    0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
    1, 不管需要多少内存,都允许申请。
    2, 只允许分配物理内存和交换内存的大小(交换内存一般是物理内存的一半)。

    3、关闭Transparent Huge Pages(THP)

    THP会造成内存锁影响redis性能,建议关闭

     
    1
    2
    3
    4
    Transparent HugePages :用来提高内存管理的性能
    Transparent Huge Pages在32位的RHEL 6中是不支持的
    执行命令 echo never > /sys/kernel/mm/transparent_hugepage/enabled
    把这条命令添加到这个文件中/etc/rc.local
  • 相关阅读:
    PTA(Advanced Level)1009.Product of Polynomials
    PTA(Advanced Level)1002.A+B for Polynomials
    PTA(Advanced Level)1065.A+B and C
    PTA(Advanced Level)1046.Shortest Distance
    PTA(Advanced Level)1042.Shuffling Machine
    PTA(Basic Level)1046.划拳
    PTA(Basic Level)1060.爱丁顿数
    PTA(Basic Level)1053.住房空置率
    PTA(Basic Level)1023.组个最小数
    DOM4J熟知
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15439787.html
Copyright © 2011-2022 走看看