nginx并发连接能力优化

一次压力测试,nginx服务器老是报告TIME_WAIT 告警, 检查nginx配置和系统网络配置发现现有的配置并发能力弱,无法满足现有的并发请求的需求。

原始配置:

worker_processes  2;

events {
    worker_connections  2500;
}

改进方式:

  1. 使用epoll模式,增加并发连接数,增加nginx系统并发连接能力。
  2. 后端使用长连接, 提高端口利用率,减少TIME_WAIT状态比例, 使系统可以允许更多的TIME_WAIT。
  3. 优化tcp连接工作模式,减少FIN2_WAIT状态比例 (对应监控中的OTHERSTATE)。
worker_processes  4;

events {
    use epoll; #支持大量连接和非活动连接
    worker_connections 5000; 
    multi_accept on; #nginx在已经得到一个新连接的通知时,接收尽可能多的连接
}

 优化Linux系统关于TCPIP的连接的配置 vi /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1 表示开启syn cookies,当出现SYN等待队列一出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1 表示开启重启重用,允许将time_wait scokets 重新用于新的连接,默认是0,表示关闭
net.ipv4.tcp_tw_reuse = 1   表示开启TCP连接中TIME WAIT sockets 快速回收,默认为0表示关闭
net.ipv4.tcp_fin_timeout = 1 修改默认的timeout时间
net.ipv4.tcp_max_syn_backlog = 4096 #表示SYN队列的长度,默认为1024,加大队列长度为4096,可以容纳更多等待连接的网络连接数。

最后执行/sbin/sysctl -p 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值