CS-Notes 学习笔记
Java 后端 · 计算机网络

服务器上出现大量 TIME_WAIT 或 CLOSE_WAIT 是什么原因?

先自己想一想,再看参考要点

参考要点

  • TIME_WAIT 在主动关闭方,多由短连接引起
  • 发起连接的一方每个 TIME_WAIT 占用本地端口 60 秒,连接同一目标时每秒新建约 470 个连接就会耗尽默认的 28232 个端口(服务器一侧的 TIME_WAIT 共用监听端口,不消耗本地端口),用长连接或连接池、把 tcp_tw_reuse 设为 1(默认值 2 只对回环地址生效)、扩大端口范围解决
  • CLOSE_WAIT 在被动关闭方,是应用没有调用 close(),多为异常分支没关连接或连接池借出未还,要改代码
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。