良许Linux教程网 Linux教程 Linux服务器CLOSE_WAIT连接过多

Linux服务器CLOSE_WAIT连接过多

如果在Linux系统中执行以下命令,发现处于CLOSE_WAIT状态的TCP连接非常多。

netstat -atn|grep CLOSE_WAIT|wc -l

原因分析

根据实例上的业务量判断CLOSE_WAIT数量是否超出了正常的范围。TCP连接断开时需要进行四次挥手,TCP连接的两端都可以发起关闭连接的请求,若对端发起了关闭连接,但本地没有关闭连接,那么该连接就会处于CLOSE_WAIT状态。虽然该连接已经处于半开状态,但是已经无法和对端通信,需要及时的释放该连接。建议从业务层面及时判断某个连接是否已经被对端关闭,即在程序逻辑中对连接及时关闭,并进行检查。

解决方法

编程语言中对应的读、写函数一般包含了检测CLOSE_WAIT状态的TCP连接功能,可通过执行以下命令,查看当前实例上处于CLOSE_WAIT状态的连接数。

netstat -an|grep CLOSE_WAIT|wc -l

Java语言和C语言中关闭连接的方法如下:

Java语言

  1. 通过read方法来判断I/O 。当read方法返回-1时,则表示已经到达末尾。

  2. 通过close方法关闭该连接。

C语言

检查read的返回值。

  • 若等于0,则可以关闭该连接。

  • 若小于0,则查看error,若不是AGAIN,则同样可以关闭连接。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部