nginx如何处理TIMEWAIT过多?

nginx如何处理TIMEWAIT过多?在高并发短连接的TCP服务器上,当服务器处理完请求后立刻主动正常连接。这个场景下会出现大量socket处于TIME_WAIT状态。如果客户端的并发量持续很高,此时部分客户端就会显示连接不上。首先先查看tcp连接状态及数量:#netstat-n|awk‘/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}’或者#netstat-ant|awk’/^tcp/{++S[$NF]}END{for(ainS)print(a,S[a])}

大家好,又见面了,我是你们的朋友全栈君。

在高并发短连接的TCP服务器上,当服务器处理完请求后立刻主动正常连接。这个场景下会出现大量socket处于TIME_WAIT状态。如果客户端的并发量持续很高,此时部分客户端就会显示连接不上。
首先先查看 tcp连接状态及数量:

#netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

或者

#netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'
#netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

SYN居然这么高,继续追查是那些ip发出的SYN:

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
当出现TIME WAIT 很多的时候,可通过优化linux内核来缓解它;

处理办法:

编辑内核文件/etc/sysctl.conf,加入以下内容:

net.ipv4.tcp_syncookies = 1 #当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击
net.ipv4.tcp_tw_reuse = 1     #允许 sockets重新用于新的TCP连接
net.ipv4.tcp_tw_recycle = 1   #加快tcp的 time wait sockets的快速回收
net.ipv4.tcp_fin_timeout = 30 修改系默认的 TIMEOUT 时间(缺省值60s)

创作者:吴仔汕
欢迎大家参考,还可以提出疑问或者不同看法噢。
原创作品,转载请标明出处!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134526.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • awstats 配置「建议收藏」

    awstats 配置「建议收藏」awstats一、首先修改httpd.conf  httpd-vhost.conf把log模式由common改成combinedvi/usr/local/apache2/conf/httpd.confvi/usr/local/apache2/conf/extra/httpd-vhost.conf/usr/local/apache2/bin/apachectlrestart二、安装Geo-…

  • android反编译apk_apk反编译找不到

    android反编译apk_apk反编译找不到反编译代码:1、解压apk得到class.dex2、dex2jar.bat class.dex3、用Javadecompiler查看编译出来的*.jar文件就可以看到代码反编译资源文件:1、apktool.bat d *.apk  APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK

  • Java实现Ip代理池

    Java实现Ip代理池设置Ip代理很多时候都会有用到,尤其是在写爬虫相关项目的时候。虽然自己目前没有接触这种需求,但由于最近比较闲,就写着当作练习吧爬取代理IP爬取关于爬取代理IP,国内首先想到的网站当然是西刺代理。首先写个爬虫获取该网站内的Ip吧。先对国内Http代理标签页面进行爬取,解析页面使用的Jsoup,这里大概代码如下privateList<IPBean>crawl(S…

  • python安装不了whl文件_Python安装whl文件过程图解

    python安装不了whl文件_Python安装whl文件过程图解Python安装whl文件过程图解这篇文章主要介绍了Python安装whl文件过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在命令指示符下(cmd)的Python3安装命令为:pip3install文件名.whl安装出错:matplotlib-2.0.0-cp34-cp34m-win_amd64.whlisnotasuppor…

  • centos创建samba共享_安卓samba服务器

    centos创建samba共享_安卓samba服务器对公司的不同部门建立不同的文件共享,不同的用户访问同一个共享目录具有不同的权限.

  • 链路层链路发现协议(LLDP)讲解「建议收藏」

    链路层链路发现协议(LLDP)讲解「建议收藏」一、LLDP协议概述 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。 LLDP(LinkLayerDiscoveryProtocol,链路层发现协

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号