Redis生产环境参数调优

说明:文中单引号用markdown写出来格式不对!请自行改为单引号!

1.vm.overcommit_memory
 查看当前值:sysctl -a | grep vm.overcommit_memory,默认值为0,
可选值有0、1、2
0:计算是否有足够的可用内存,计算过程比较复杂,有兴趣的自行查阅资料,如果有足够的内存,就分配成功,否则分配失败
1:直接分配成功,不做任何判断,直到用完为止
2:计算内存总量 * vm.overcommit_ratio/100 + SWAP的总量,如果申请空间超过此值,则申请失败,否则申请成功

建议修改为1
 修改:
 echo ‘vm.overcommit_memory=1’ >> /etc/sysctl.conf
 sysctl -p 刷新

2.vm.swappiness
 控制进程的swap行为。OS会把一部分磁盘空间作为swap区域,操作系统会把当前不活跃的进程调整为睡眠状态,然后把进程数据从内存转移到磁盘上的swap区域,腾出内存空间给其他活跃进程使用。
 查看当前值:sysctl -a | grep vm.swappiness,默认值为60
 可选值为0-100,数字越小,表示操作系统尽可能将进程都使用物理内存而不是转移到磁盘swap区域去。
 设置为0,就表示尽量让进程都常驻物理内存,不转移到磁盘swap区域。
 设置为100,就表示尽量将一些进程转移到磁盘swap区域中,腾出内存供其他活跃进程使用。

 生产环境建议将这个数值调低一些,尽量让进程都使用物理内存
 修改:
 echo ‘vm.swappiness=10’ >> /etc/sysctl.conf
 sysctl -p 刷新

3.ulimit
 最大文件句柄,就是一个进程最多能打开多少个文件。磁盘读写,网络通信都跟这个参数有关,默认值为1024,太小了,建议调整。
 查看当前值:ulimit -n
 修改:
 echo ‘ulimit -n 1000000’ >> /etc/profile
 source /etc/profile 刷新

4.tcp backlog
 tcp连接队列
 半连接状态:服务器处于Listen状态时收到客户端SYN报文时放入半连接队列中,即SYN queue(服务器端口状态为:SYN_RCVD)
 全连接状态:TCP的连接状态从服务器(SYN+ACK)响应客户端后,到客户端的ACK报文到达服务器之前,则一直保留在半连接状态中;当服务器接收到客户端的ACK报文后,该条目将从半连接队列搬到全连接队列尾部,即 accept queue (服务器端口状态为:ESTABLISHED)
 linux内核2.2之后,分别用两个backlog分别限制半连接队列大小和全连接队列大小
 半连接队列长度由 /proc/sys/net/ipv4/tcp_max_syn_backlog 指定
 全连接队列长度由 /proc/sys/net/core/somaxconn 指定 或者由/etc/sysctl.conf的参数net.core.somaconn指定
 建议增大至1024以上
 增大半连接队列长度: echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
 增大全连接队列长度: echo 1024 > /proc/sys/net/core/somaxconn 或者 echo ‘net.core.somaconn=1024’ >> /etc/sysctl.conf 然后 sysctl -p 刷新

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值