redis环境设置

  • 允许内核可以分配所有的物理内存,防止Redis进程执行fork时因系统剩余内存不足而失败。
    echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
    sysctl vm.overcommit_memory=1

  • 关闭THP,防止写时复制期间内存过度消耗
    echo never > /sys/kernel/mm/transparent_hugepage/enabled

  • tcp三次握手后,会将接受的连接放入队列中,tcp-backlog就是队列的大小,默认511,这个参数会受到操作系统影响
    cat /proc/sys/net/core/somaxconn
    echo 511 > /proc/sys/net/core/somaxconn

  • ulimit
    ulimit -n 65535
    打开文件句柄数,用于maxclients

  • tcp backlog
    默认511
    echo 511 > /proc/sys/net/core/somaxconn

  • 系统总连接数,这个自己定,避免发生Cannot allocate memory错误
    cat /proc/sys/kernel/threads-max
    echo 200000 > /proc/sys/kernel/threads-max

  • 防连接超时报错Cannot assign requested
    开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
    sysctl -w net.ipv4.tcp_timestamps=1
    表示开启TCP连接中TIME-WAIT sockets的快速回收
    sysctl -w net.ipv4.tcp_tw_recycle=1
    echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse