暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

出现大量CLOSE_WAIT状态的TCP连接

原创 Shyai 2022-09-20
1208

问题现象: 执行以下命令,发现当前系统中处于CLOSE_WAIT状态的TCP连接非常多。

netstat -atn|grep CLOSE_WAIT|wc -l

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

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

netstat -an|grep CLOSE_WAIT|wc -l

通过java语言代码来关闭CLOSE_WAIT状态,代码如下: Java语言 通过read方法来判断I/O 。当read方法返回-1时,则表示已经到达末尾。 通过close方法关闭该链

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论