短连接过多时,TIME_WAIT问题解决

        日常运维中用netstat -an命令发现服务器中有大量状态为TIME-WAIT的TCP连接,于是用/sbin/sysctl -a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP连接中TIME-WAIT sockets的目的。

vi /etc/sysctl.conf

  编辑/etc/sysctl.conf文件,增加三行:

引用

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

  说明:

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

  再执行以下命令,让修改结果立即生效:

/sbin/sysctl -p

  用以下语句看了一下服务器的TCP状态:

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

  返回结果如下:

ESTABLISHED 1423

FIN_WAIT1 1

FIN_WAIT2 262

SYN_SENT 1

TIME_WAIT 962

  效果:处于TIME_WAIT状态的sockets从原来的10000多减少到1000左右。处于SYN_RECV等待处理状态的sockets为0,原来的为50~300。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

TCP为什么需要3次握手与4次挥手

http://blog.csdn.net/xifeijian/article/details/12777187

2K3
来自专栏PHP实战技术

OSI 七层模型简单梳理!

功能:OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。 7.应用层 网络服务与最终用户的一个接口。 协议有:HTTP F...

53312
来自专栏武军超python专栏

2018年8月16日TCP中三次握手和四次挥手详解

 上图中有几个字段需要重点介绍下:         (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。...

892
来自专栏Java架构沉思录

聊聊TCP连接管理

什么是TCP 在介绍什么是TCP之前,先简单讲一下网络分层模型。因特网协议栈由5个层次组成,分别是物理层、链路层、网络层、运输层和应用层,每一层有每一层的作用...

3358
来自专栏Janti

基础巩固——你应该这么理解TCP的三次握手和四次挥手

网络传输层负责最底层的底层链路连接。两台主机之间进行互联,基于网线的物理硬件上的协议。在这个侧面,主机与主机之间只认得硬件mac编码。并不认识IP。

742
来自专栏有困难要上,没有困难创造困难也要上!

Windows上通过命令行参数限制CPU

3097
来自专栏我就是马云飞

注意!是TCP不是HTTP的3次握手与4次挥手

1143
来自专栏风中追风

TCP 三次握手与四次挥手 看了你必懂

最近在思考一个问题,当我们在浏览器中输入URL按下回车键后,他的详细流程是怎样的;以前刚用springMVC的时候弄懂了一个请求的流程,好几个月以为那就是我想要...

3877
来自专栏JetpropelledSnake

Python Web学习笔记之TCP的3次握手与4次挥手过程

前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味...

41310
来自专栏程序猿DD

TCP之三次握手四次挥手

TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。

18410

扫码关注云+社区

领取腾讯云代金券