第二个原因:第 3 步没有做,有新连接到来时没有调用 accpet 获取该连接的 socket,导致当有大量的客户端主动断开了连接,而服务端没机会对这些 socket 调用 close 函数,从而导致服务端出现大量 CLOSE_WAIT 状态的连接。 发生这种情况可能是因为服务端在执行 accpet 函数之前,代码卡在某一个逻辑或者提前抛出了异常。
CLOSE_WAIT 状态CLOSE_WAIT是被动关闭方(服务端)的状态,通常是因为服务端代码没有正确处理FIN报文或关闭连接操作。可能的原因包括:服务端代码逻辑错误,如未将socket注册到epoll,导致无法感知连接关闭。服务端在accept或处理连接时遇到异常,未能正常关闭连接。处理客户端关闭请求时,代码错误或死锁未正确...
**第四个原因**:第 6 步没有做,当发现客户端关闭连接后,服务端没有执行 close 函数,可能是因为代码漏处理,或者是在执行 close 函数之前,代码卡在某一个逻辑,比如发生死锁等等。 可以发现,**当服务端出现大量 CLOSE_WAIT 状态的连接的时候,通常都是代码的问题,这时候我们需要针对具体的代码一步一步的进行排查...