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…

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…

Python:背景知识及环境安装

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

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;一款高效、易用的视频格式转换器成为了许多人的必备工具。本文将从软件界面、功能特性、难易程…

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

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

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令…

R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析

随机森林作为一种集成学习方法&#xff0c;在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性&#xff0c;随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中&#xff0c;使用Bootstrap抽样生成不同的训练集&#xff…

【案例75】全表扫描导致系统崩溃

问题现象 顾问反馈系统审批单据时&#xff0c;系统出现整体卡顿。操作审批单据本身比较长&#xff0c;在数据库中出现了死锁&#xff0c;死锁处理后&#xff0c;一审批单据就又会整体卡顿。 问题分析 开始怀疑有事务锁未释放导致的&#xff0c;先排查数据库当时的状态。发现…

AI写PPT工具:四款人工智能软件全面解析!!

嘿&#xff0c;小伙伴们&#xff01;今天咱们来聊聊那些能帮我们搞定PPT的神器——四款人工智能软件。有了它们&#xff0c;咱们再也不用为做PPT而头疼啦&#xff01; 第一款&#xff1a;笔灵AIPPT 直通车&#xff08;粘贴复制到网站打开&#xff09;&#xff1a;ibiling.c…

C++第八讲:STL--stack和queue的使用及模拟实现

C第八讲&#xff1a;STL--stack和queue的使用及模拟实现 1.stack的使用2.queue的使用3.栈和队列OJ题3.1题目1&#xff1a;最小栈3.2题目2&#xff1a;栈的压入、弹出序列3.3题目3&#xff1a;逆波兰表达式求值3.4题目4&#xff1a;用栈实现队列 4.栈的模拟实现5.队列的模拟实现…

103、QT搭建Excel表环境-使用Qtxlsx库

环境搭建 文件下载 下载QtXlsx源码&#xff1a;https://github.com/dbzhang800/QtXlsxWriter 下载的内容里面的目录结构如下&#xff1a; 搭建perl环境 官网链接: https://strawberryperl.com/ 下载后并安装 检验是否有perl环境的方法&#xff1a; perl --version安装前检…

Go语言基础教程:闭包

在这篇教程中&#xff0c;我们将通过一段简单的 Go 语言代码来理解闭包的概念。闭包是编程中非常强大且常用的工具&#xff0c;尤其适合实现像计数器这样的逻辑。我们将逐行讲解代码&#xff0c;并理解如何在 Go 中利用闭包来保存函数状态。 package mainimport "fmt&quo…