websocket - 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,
请让我知道是否可以实施任何解决方案来避免这种情况或对可能的根本原因提出任何建议?
这个问题是否与服务器端问题有关
解决方案
根据关闭WebSocket 协议规范的连接章节:
要关闭 WebSocket 连接,端点会关闭底层 TCP 连接。端点应该使用干净关闭 TCP 连接以及 TLS 会话(如果适用)的方法,丢弃可能已接收到的任何尾随字节。端点可以在必要时通过任何可用的方式关闭连接,例如在受到攻击时。
在大多数正常情况下,底层 TCP 连接应该首先由服务器关闭,以便它保持 TIME_WAIT 状态而不是客户端(因为这会阻止它在 2 个最大段生命周期 (2MSL) 内重新打开连接,而没有相应的服务器影响,因为 TIME_WAIT 连接会在具有更高 seq 号的新 SYN 时立即重新打开)。在异常情况下(例如在合理的时间后没有从服务器收到 TCP 关闭)客户端可以发起 TCP 关闭。因此,当服务器被指示关闭 WebSocket 连接时,它应该立即启动 TCP 关闭,并且当客户端被指示执行相同操作时,它应该等待来自服务器的 TCP 关闭。
因此,您需要检查端点日志以确定原因(除非您没有自行关闭连接)
可能是端点没有为高负载正确配置并且不接受大量连接,或者它在 CPU、RAM 和网络 IO 方面过载,因此值得使用JMeter PerfMon 插件检查这些指标
推荐阅读
- scala - 调用后丢弃的Scala Future`.onComplete`函数?
- scala - 使用与参数类型相同的类型参数和具有匹配表达式的参数类型
- php - 错误 SMTP 错误:PHPMailer 中不接受数据
- swift - 如何在 SwiftUI 中使用 UserDefaults?
- serial-port - 通过 mlockall() 解决 - 特定值下的 Ascii 字符未通过串行读取
- python - 集成到for循环python时由actionchains send_keys发送的重复文本
- python - 如何使用 Python-Shell 包从 nodejs 传递 Python 参数?
- php - 如何在php中的mysql数据库中回显一年和一个月的条目总数
- hyperledger-fabric - 在 Hyperledger Fabric 1.1.0 中实例化链码时出错
- wordpress - Wordpress:如何知道哪个页面正在请求特定的 css 文件