TIME_WAIT 居高不下怎么办? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
openbaby
V2EX    Linux

TIME_WAIT 居高不下怎么办?

  openbaby 2016-05-22 15:19:45 +08:00 4370 次点击
这是一个创建于 3499 天前的主题,其中的信息可能已经有所发展或是发生改变。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'显示 TIME_WAIT 太多了



/etc/sysctl.conf 如下

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxcOnn= 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000


带宽还没跑满,该如何优化呢?
14 条回复    2016-05-27 11:18:19 +08:00
chrlwang
    1
chrlwang  
   2016-05-22 15:32:42 +08:00
说说这服务器是干啥呀?咱不能二话不说就改底层系统配置啊。
openbaby
    2
openbaby  
OP
   2016-05-22 15:42:16 +08:00
@chrlwang 跑 nginx 的。 cpu 、内存、带宽占用都正常。
firebroo
    3
firebroo  
   2016-05-22 16:04:49 +08:00
这么点不算多吧。
openbaby
    4
openbaby  
OP
   2016-05-22 16:08:21 +08:00
@firebroo TIME_WAIT 比 ESTABLISHED 高出不少
firebroo
    5
firebroo  
   2016-05-22 16:14:28 +08:00
@openbaby ESTABLISHED,SYN_REV 的数量都不多说明你的 nginx 服务器连接数量不多啊, TCP 的 TIME_WAIT 状态是通信双方主动关闭 sockfd 方会进入此状态,肯定不是 nginx 导致的,你要看是什么进程产生了 TIME_WAIT 。
firebroo
    6
firebroo  
   2016-05-22 16:26:20 +08:00
@openbaby 查了下,是 nginx 默认使用短连接...
littlehz
    7
littlehz  
   2016-05-22 16:49:28 +08:00   1
出现 TIME_WAIT 的原因是因为服务器主动关闭了 TCP 连接,无论作为 client 还是 server ,哪方主动 close TCP 连接,必然在这方出现 TIME_WAIT 。

所以要避免出现 TIME_WAIT ,就是不主动关闭 TCP 连接。

如果你的机器纯 nginx 反向代理,没有别的。那:

1 、 http 段的 keepalive 开启,不主动关闭浏览器客户端的连接。
2 、 upstream 段的 keepalive 开启,不主动关闭与后端 upstream 服务器的连接。同时需要修改 Proxy Header , HTTP/1.1 协议,移除掉 http close 头

如果你的机器还跑了 php ,那可能连接 mysql 是吧?
php 连接 mysql 的函数,使用 persistent 持久连接。

跑了 php ,可能连接 redis ?
php 连接 redis 的函数,使用 persistent 持久连接。

要看你的业务,系统底层怎么改都不能彻底解决 TIME_WAIT , TCP 协议设计如此。
openbaby
    8
openbaby  
OP
   2016-05-22 16:52:28 +08:00
@firebroo 只开了 80 端口,只运行了 nginx 。
@littlehz 没跑反代和 php ,只跑了 html 静态站。
skydiver
    9
skydiver  
   2016-05-22 16:55:58 +08:00 via iPad
根本不是问题,不用解决。

TIME_WAIT 本身也不会占用很多资源,何必要解决。

建议多看看 TCPIP 协议相关内容。
openbaby
    10
openbaby  
OP
   2016-05-22 17:06:56 +08:00
@skydiver 现在的问题是打开页面时快时慢,有一阵瞬间打开,有一阵得等好几秒才有响应(感觉像服务器处理不过来,在排队的样子)。 ping 值一直是稳定的,带宽和 cpu 内存也是波动不大。
skydiver
    11
skydiver  
   2016-05-22 17:17:05 +08:00 via iPad   1
@openbaby 那你应该看发送队列是不是满了。通过 ss -l 和 netstat 。这跟 TIME_WAIT 没关系。
vus520
    12
vus520  
   2016-05-23 09:53:00 +08:00
@littlehz upstream 中默认是长连接吗,还是每个请求来都会重新去连接后端的 php
littlehz
    13
littlehz  
   2016-05-23 23:29:54 +08:00
@vus520 默认短连接,每次都要三次握手。 upstream 里加了 keepalive ,并且配合 proxy/fastcgi 头的修改才是长连接。
wizardoz
    14
wizardoz  
   2016-05-27 11:18:19 +08:00
总之这个配置不能乱改,有一次我参照晚上找的方法该了,貌似就是那个重用连接。
结果 TIME_WAIT 下来了,程序接入变得不稳定。
差点没把老板气急死。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2595 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 24ms UTC 07:14 PVG 15:14 LAX 23:14 JFK 02:14
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86