JMeter压测时报错Address Already in use 或 java.net.SocketException: Socket closed

由于模拟并发请求会占用一个端口,和远程来建立连接,但是windows本身提供的端口访问机制受到限制,在Windows操作系统中,端口号的使用受到一定的管理和限制。端口号1024到5000(或有时称为“动态端口”或“私有端口”范围的一部分,尽管这个范围的确切上限可能因Windows版本和配置而异)通常被用于TCP/IP连接

动态端口分配
当应用程序需要建立TCP/IP连接时,如果没有指定特定的端口号,操作系统通常会从动态端口范围(包括1024-5000)中分配一个可用的端口给该连接。这个分配是临时的,并且每次连接时都可能不同。
端口回收
当一个TCP/IP连接关闭时,其使用的端口会被标记为空闲,并返回到操作系统的空闲端口列表中。
回收时间主要取决于连接关闭的速度以及操作系统处理端口回收的效率。
在某些情况下,如系统资源紧张或网络负载较高时,端口回收的时间可能会稍长。
TIME_WAIT状态
在TCP/IP协议中,当一个连接关闭后,其端口会进入TIME_WAIT状态,以确保所有与该连接相关的数据包都已正确传输和接收。
TIME_WAIT状态的持续时间通常为2倍的MSL(Maximum Segment Lifetime,报文最大生存时间),在Windows系统中,这个值默认为4分钟(240秒)。
在TIME_WAIT状态期间,端口不会被重新分配给其他连接

所以当我们压测的时候也就是相当于端口被占用完了所以报错

解决方法:
修改windows的注册表
WIN+R输入“regedit”后打开注册表编辑器。
导航到TCP/IP参数路径:
在注册表编辑器中,打开路径

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

1、右击Parameters,添加一个新的DWORD,名字为MaxUserPort,再添加一个TCPTimedWaitDelay
2、双击MaxUserPort,输入值为65534,基数选择十进制
TCPTimedWaitDelay:30 (也就是30秒就回收)
在这里插入图片描述
参考windows文档:
https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/networking/connect-tcp-greater-than-5000-error-wsaenobufs-10055
添加链接描述

在这里插入图片描述

java.net.SocketException: Socket closedat java.base/sun.nio.ch.NioSocketImpl.endRead(NioSocketImpl.java:253)at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:332)at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:355)at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:808)at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:940)at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:651)at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1311)at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1300)at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651)at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570)at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501)at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268)at java.base/java.lang.Thread.run(Thread.java:842)

在这里插入图片描述
或者在jmeter安装目录的bin目录下,找到jmeter.properties并设置
httpclient4.retrycount=1 这个配置项的意思是在使用HttpClient 4这个HTTP客户端库时,对于失败的请求将尝试重试的次数设置为1次。
httpclient4.idletimeout=30000,那么这意味着如果一个连接在30秒内没有被使用,它将被关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/56648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 pydub 的 AudioSegment 获取音频时长 - python 实现

通过使用 pydub 的 AudioSegment 获取音频时长,音频常用格式如 m4a,wav等。 安装 python 库: pip install pydub 获取 m4a 格式的音频时长代码如下,代码如下: #-*-coding:utf-8-*- # date:2024-10 # Author: DataBall - XIAN #…

2024软考网络工程师笔记 - 第10章.组网技术

文章目录 交换机基础1️⃣交换机分类2️⃣其他分类方式3️⃣级联和堆叠4️⃣堆叠优劣势5️⃣交换机性能参数 🕑路由器基础1️⃣路由器接口2️⃣交换机路由器管理方式2️⃣交换机路由器管理方式 交换机基础 1️⃣交换机分类 1.根据交换方式分 存储转发式交换(Store…

Unity烟花demo

示例: Unity烟花demo 按钮控制脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class FireworksController : MonoBehaviour {public ParticleSystem fireworksParticle;// Start is called before the first frame u…

Java生死簿管理小系统(简单实现)

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

精益生产现场管理和改善的实施技巧有哪些?

精益生产现场管理和改善,是企业追求高效、高质量生产的关键所在。这一管理策略强调在现场通过一系列工具和方法,对生产流程、物料流动、设备利用、人员配置等进行持续优化,旨在消除浪费、提升效率、保障质量、增强灵活性,最终实现…

npm、yarn、pnpm的workspaces使用

示例项目中总会遇到npm的packages中出现的workspaces键值对,自己的项目中没接触过这个东西,到底是什么?怎么用的?简单研究记录一下: abbrev是一个npm包,提供缩写展开功能。‌ 当你定义一个缩写后&#xff0…

PoissonRecon学习笔记

1. Screened Poisson Reconstruction (SPR) 源码:https://github.com/mkazhdan/PoissonRecon However, as noted by several researchers, it suffers from a tendency to over-smooth the data. 泊松重建存在过度平滑的现象。 方法:position and gradi…

加密算法入门:DES S盒输出计算方法

在数据加密标准(DES)中,S盒(Substitution box)是其核心的非线性部件之一,用于实现混淆(Confusion),这是克劳德香农提出的两个基本操作之一,用以增加密码分析的…

Python学习路线:从新手到专家

引言 Python 是一种高级编程语言,以其简洁清晰的语法而闻名,被广泛应用于Web开发、数据科学、人工智能、自动化脚本等领域。无论你是编程初学者还是有经验的开发者,Python 都是一个值得学习的语言。本文将提供一份详细的Python学习路线图&am…

Python:背景知识及环境安装

一、计算机的基础概念 1.1 什么是计算机? 最早我们有计算器,但是他只能完成算数运算的功能 而计算机能完成的工作有: (1)算术运算 (2)逻辑判断 (3)数据存储 &#xff08…

【Bug】RuntimeError: Engine loop has died

目录 报错前置条件报错内容解决方案 报错前置条件 使用vllm启动qwen2.5-32b-instruct模型后发生的报错 GPU是GeForce RTX 4090 Laptop GPU 系统是Windows 11 运行系统是WSL2-Ubuntu22.04 报错内容 INFO 10-22 22:29:31 engine.py:290] Added request chat-993cbe95e73d4a1db…

VUE中文本域默认展示最底部内容

文本域内容 <textarea ref"textareaRef" style"width: 100%; resize: none;" readonly v-model"errorLog" rows"15"></textarea> 样式展示 this.$nextTick(() > { // 使用$refs获取文本域的DOM元素 const textareaInfo…

重生之“我打数据结构,真的假的?”--3.栈和队列(无习题)

栈和队列 C语言中的栈和队列总结 在C语言中&#xff0c;**栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;**是两种非常重要的数据结构。它们广泛用于各种应用中&#xff0c;比如内存管理、任务调度、表达式求值等。本文将对这两种数据结构进行详细的介…

智能汽车制造:海康NVR管理平台/工具EasyNVR多品牌NVR管理工具/设备实现无插件视频监控直播方案

一、背景介绍 近年来&#xff0c;随着网络在我国的普及和深化发展&#xff0c;企业的信息化建设不断深入&#xff0c;各行各业都加快了信息网络平台的建设&#xff0c;大多数单位已经或者正在铺设企业内部的计算机局域网。与此同时&#xff0c;网络也成为先进的新兴应用提供了…

详细尝鲜flutter

flutter 161由于官方的汉化文档感觉还是有很多没有汉化的地方 &#xff0c;所以自己打一遍的同时写下了以下笔记 社区生态 官方文档 所有的控件:Widget 目录 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 官方论坛的教程 Flutter Widget框架概述 - Flutter中文网…

7款视频转换器大测评!哪款是最适合你的视频格式转换器?

视频已成为我们生活中不可或缺的一部分&#xff0c;但不同的设备、平台和软件往往支持不同的视频格式&#xff0c;这给我们的视频分享、编辑和播放带来了不少困扰。因此&#xff0c;一款高效、易用的视频格式转换器成为了许多人的必备工具。本文将从软件界面、功能特性、难易程…

网络连接设备的功能与应用概述

目录 一、集线器 二、交换机 三、网桥 四、路由器 五、集线器、交换机、网桥与路由器的比较 备注 一、集线器 定义: 集线器(Hub)是一种物理层设备,它提供多个端口,用于将多个计算机或其他网络设备连接在一起,形成一个局域网(LAN)。 工作原理: 集线器通过广播的…

不推荐使用Scilab作为MATLAB的开源替代

安装了Scilab2024.1.0&#xff0c;随便试了几分钟就发现有严重影响使用的Bug(也可能是就是这样设计的&#xff0c;有一个所谓的“暂停模式”)&#xff0c;复现步骤&#xff1a;主界面上点击“Scilab示例”按钮&#xff0c;打开“演示”窗口&#xff0c;点击左侧列表中的“多项式…

cmake如何处理conan包中的头文件?

在 Conan 中管理的包&#xff0c;头文件的位置通常由包的开发者在包的 conanfile.py 中指定。要确定一个 Conan 包的头文件位置&#xff0c;可以按照以下步骤进行&#xff1a; 查看 Conanfile&#xff1a; 打开你感兴趣的 Conan 包的 conanfile.py 文件&#xff0c;查看 packag…

JSON Web Token (JWT)的简单介绍、验证过程及令牌刷新思路

目录 一、JWT 1、什么是Jwt 2、为什么要使用Jwt 3、应用场景 4.Jwt的组成 4.1、Header 4.2、Payload 4.3、signature 二、Jwt验证过程 1、生成Jwt令牌 2、解析旧的Jwt 3、复制Jwt 4、Jwt有效时间测试 三、Jwt令牌刷新思路 1、配置JwtFilter过滤器 2、登录生成Jwt令…