Linux服务器CLOSE_WAIT连接过多怎么办
导读:本文共909字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 如果在Linux系统中执行以下命令,发现处于CLOSE_WAIT状态的TCP连接非常多。netstat-atn|grepCLOSE_WAIT|wc-l原因分析根据实例上的业务量判断CLOSE_WAIT数量是否超出了正常的范围。TCP连接断开时需要进行四次挥手,TCP连接的两端都可以发起关闭连接的请求,若对端发起了关闭连接,但本地没有关闭连接,那么该连接就会处于C... ...
目录
(为您整理了一些要点),点击可以直达。如果在Linux系统中执行以下命令,发现处于CLOSE_WAIT
状态的TCP连接非常多。
根据实例上的业务量判断CLOSE_WAIT数量是否超出了正常的范围。TCP连接断开时需要进行四次挥手,TCP连接的两端都可以发起关闭连接的请求,若对端发起了关闭连接,但本地没有关闭连接,那么该连接就会处于CLOSE_WAIT状态。虽然该连接已经处于半开状态,但是已经无法和对端通信,需要及时的释放该连接。建议从业务层面及时判断某个连接是否已经被对端关闭,即在程序逻辑中对连接及时关闭,并进行检查。
编程语言中对应的读、写函数一般包含了检测CLOSE_WAIT状态的TCP连接功能,可通过执行以下命令,查看当前实例上处于CLOSE_WAIT状态的连接数。
Java语言和C语言中关闭连接的方法如下:
Java语言
通过read
方法来判断I/O 。当read方法返回-1
时,则表示已经到达末尾。
通过close
方法关闭该连接。
C语言
检查read
的返回值。
若等于0,则可以关闭该连接。
若小于0,则查看error,若不是AGAIN,则同样可以关闭连接。
Linux服务器CLOSE_WAIT连接过多怎么办的详细内容,希望对您有所帮助,信息来源于网络。