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)


相关推荐

  • 正态qq图怎么判断分布_怎么判断是不是QQ小号

    正态qq图怎么判断分布_怎么判断是不是QQ小号一、正态QQ图的原理QQ图通过把测试样本数据的分位数与已知分布相比较,从而来检验数据的分布情况。[1]分位数:亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点。常用的有一个分位数叫,百分位数,它是指如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。QQ图是一种散点图,对应于正态分布的QQ图,就是由标准正态分布的分位

  • python的sorted函数「建议收藏」

    python的sorted函数「建议收藏」sorted很简单,没太多好写的,只是给自己做个笔记。sorted接受三个参数,返回一个排序之后的list。第一个接受一个可迭代的对象(因为sorted实现了迭代协议,所以接受的参数不一定需要l

  • IT界最伟大的十位人物「建议收藏」

    IT界最伟大的十位人物「建议收藏」美国《电脑周刊》最近评出了“IT界最伟大十位人物”,苹果公司创办人史蒂夫·乔布斯(SteveJobs)凭借着创新精神和在苹果的二次创业排名榜首。    世界首富的微软董事会主席比尔·盖茨仅排名第三位,不敌万维网(Web)发明人蒂姆·伯纳斯·李。巧合的是,三甲排名人物都是在同一年出生。    上榜的十位人物大多世界闻名,而且富可敌国。例如,盖茨已经

  • top命令详解(转载)「建议收藏」

    top命令详解(转载)「建议收藏」top命令用法top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。top的使用方式top[-dnumber]|top[-bnp]参数解释:-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。-b:以批次的方式执行top。-n:与-b配合使用,表示需要进行几次top命令的输出结果。-p:指定特定的pid进程号进行观察。在top命令显示的页面还可以输…

  • GIT、GITLAB、GITHUB、GITLIB[通俗易懂]

    GIT、GITLAB、GITHUB、GITLIB[通俗易懂]Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Github-一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。随着越来越多的应用程序转移到了云上

  • 域名的url转发功能是什么_url和域名有什么区别

    域名的url转发功能是什么_url和域名有什么区别在网上找了很久,感觉还是米发快捷点,适用于域名注册下来但是个人网站还没完成暂时转发至博客的,或者想给博客弄个个性点的域名的工具:域名,米发帐号  原理:域名商解析到第三方平台服务器,第三方平台帮你转发到你的地址1. 在米发平台上添加域名2. 在米发平台上添加转发操作,   显性URL转发:只是跳转,网站显示的还是你跳转后的地址,不是你的域名隐性URL转发:网站显示的是你的域名,内容是你要跳转的…

    2022年10月19日

发表回复

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

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