服务器上出现大量 TIME_WAIT 或 CLOSE_WAIT 是什么原因?
先自己想一想,再看参考要点
参考要点
- TIME_WAIT 在主动关闭方,多由短连接引起
- 发起连接的一方每个 TIME_WAIT 占用本地端口 60 秒,连接同一目标时每秒新建约 470 个连接就会耗尽默认的 28232 个端口(服务器一侧的 TIME_WAIT 共用监听端口,不消耗本地端口),用长连接或连接池、把 tcp_tw_reuse 设为 1(默认值 2 只对回环地址生效)、扩大端口范围解决
- CLOSE_WAIT 在被动关闭方,是应用没有调用 close(),多为异常分支没关连接或连接池借出未还,要改代码