首页 > 解决方案 > WebSocket Single Read Sampler, Websocket I/O error, WebSocket I/O error: Socket is closed,

问题描述

我在 Jmeter 中收到以下错误:(有一段时间它运行良好,然后过了一段时间它开始出错,不知道为什么)

响应码:, WebSocket Single Read Sampler, Websocket I/O error, WebSocket I/O error: Socket is closed,

请让我知道是否可以实施任何解决方案来避免这种情况或对可能的根本原因提出任何建议?

这个问题是否与服务器端问题有关

标签: websocketjmeter

解决方案


根据关闭WebSocket 协议规范的连接章节:

关闭 WebSocket 连接端点会关闭底层 TCP 连接。端点应该使用干净关闭 TCP 连接以及 TLS 会话(如果适用)的方法,丢弃可能已接收到的任何尾随字节。端点可以在必要时通过任何可用的方式关闭连接,例如在受到攻击时。

在大多数正常情况下,底层 TCP 连接应该首先由服务器关闭,以便它保持 TIME_WAIT 状态而不是客户端(因为这会阻止它在 2 个最大段生命周期 (2MSL) 内重新打开连接,而没有相应的服务器影响,因为 TIME_WAIT 连接会在具有更高 seq 号的新 SYN 时立即重新打开)。在异常情况下(例如在合理的时间后没有从服务器收到 TCP 关闭)客户端可以发起 TCP 关闭。因此,当服务器被指示关闭 WebSocket 连接时,它应该立即启动 TCP 关闭,并且当客户端被指示执行相同操作时,它应该等待来自服务器的 TCP 关闭。

因此,您需要检查端点日志以确定原因(除非您没有自行关闭连接)

可能是端点没有为高负载正确配置并且不接受大量连接,或者它在 CPU、RAM 和网络 IO 方面过载,因此值得使用JMeter PerfMon 插件检查这些指标


推荐阅读