当前位置: 首页 > news >正文

谷粒商城实战笔记-143-性能压测-压力测试-JMeter在windows下地址占用bug解决

文章目录

    • 问题背景
    • 解决步骤
      • 1. 修改端口范围
      • 2. 调整端口回收时间
      • 3. 重启机器
    • 补充说明
      • 为什么端口会被用完?
      • 为什么Windows要设置这样的限制?
    • 注意事项
    • 参考链接

在进行性能压测或压力测试时,使用JMeter这样的工具来模拟大量用户请求,以测试应用程序的承载能力。

然而,在Windows操作系统下,我们可能会遇到一个棘手的问题:端口占用。

JMeter Address Already in use

本文讲解如何通过修改Windows系统设置来解决这个问题。

问题背景

Windows操作系统默认为TCP/IP连接分配的端口范围是1024到5000。当大量并发请求在短时间内发起时,这些端口很快就会被占满,导致新的连接无法建立。此外,Windows还有一个端口回收机制,它会在端口关闭后等待四分钟才重新使用该端口,这进一步加剧了端口不足的问题。

解决步骤

要解决这个问题,需要调整Windows的端口设置,扩大端口范围,并减少端口回收的等待时间。以下是详细的解决步骤:

1. 修改端口范围

首先,我们需要修改Windows的注册表来扩大端口范围。

  • 打开命令提示符(cmd)。
  • 输入regedit命令打开注册表编辑器。
  • 导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters路径。
  • 右击Parameters,选择“新建” -> “DWORD (32位)值”,命名为MaxUserPort
  • 双击MaxUserPort,输入数值数据为65534(这是Windows允许的最大端口号),基数选择“十进制”。

2. 调整端口回收时间

接下来,需要减少端口回收的等待时间。

  • 在同一注册表路径下,找到或新建一个DWORD值,命名为TCPTimedWaitDelay
  • 双击TCPTimedWaitDelay,将数值数据设置为30(单位为秒,表示端口在关闭后30秒后可被回收)。

3. 重启机器

修改注册表后,需要重启计算机以使设置生效。

补充说明

在TCP/IP协议中,每个连接都需要一个四元组来唯一标识,即源IP地址、源端口号、目标IP地址和目标端口号。

使用Jemter发起一个请求时,windows端也会使用一个临时端口与服务器建立连接。

为什么端口会被用完?

  1. 端口范围限制:Windows系统默认为动态或临时端口分配的范围是1024到5000。这意味着当应用程序需要监听或建立新的TCP/IP连接时,它必须使用这个范围内的端口。

  2. 大量并发连接:在进行性能测试或高流量的网络服务时,可能会在短时间内产生大量并发连接请求。如果这些请求的数量超过了默认端口范围所能提供的端口数量,就会出现端口耗尽的情况。

  3. 端口回收机制:当TCP连接关闭后,端口并不会立即被释放供其他连接使用。Windows有一个端口回收机制,它会在端口关闭后等待一段时间(默认是4分钟)才将端口标记为可用。这可能会导致端口在短时间内无法被重新使用。

为什么Windows要设置这样的限制?

  1. 安全考虑:较低的端口号(1-1023)通常被分配给众所周知的服务和应用程序,如HTTP(80端口)、HTTPS(443端口)等。这些端口被称为“知名端口”或“系统端口”,通常由系统或管理员管理。限制端口范围可以减少恶意软件或未授权应用程序使用这些端口的风险。

  2. 管理简便性:通过限制端口的使用范围,系统管理员可以更容易地管理和监控网络服务和应用程序的端口使用情况。

  3. 避免资源耗尽:如果没有任何限制,理论上可以有无限多的端口被使用,这可能会导致系统资源耗尽,影响系统稳定性。

  4. 兼容性:许多网络应用程序和服务依赖于特定的端口号,这些端口号在RFC(请求评论稿)中被定义。Windows需要保持与这些标准兼容。

  5. 端口回收策略:端口回收机制是为了防止所谓的“端口耗尽”攻击,这是一种拒绝服务攻击(DoS),攻击者通过快速打开和关闭连接来耗尽可用端口,导致合法用户无法建立连接。

通过理解这些原因,我们可以更好地评估和调整Windows的网络设置,以适应不同的网络环境和应用需求。在某些情况下,如大规模的负载测试或高并发的网络服务,可能需要调整端口范围和回收策略以避免端口耗尽的问题。

注意事项

  • 这些更改可能会影响到系统的安全性和稳定性,建议在测试环境中进行。
  • 如果是分布式运行环境,控制机器和负载机器都需要进行相应的设置。

通过上述步骤,我们可以有效地解决JMeter在Windows下因端口不足而导致的连接问题。

参考链接

参考链接https://support.microsoft.com/zh-cn/help/196271/when-you-try-to-connect-from-tcp-ports-greater-than-5000-you-receive-t

相关文章:

谷粒商城实战笔记-143-性能压测-压力测试-JMeter在windows下地址占用bug解决

文章目录 问题背景解决步骤1. 修改端口范围2. 调整端口回收时间3. 重启机器 补充说明为什么端口会被用完?为什么Windows要设置这样的限制? 注意事项参考链接 在进行性能压测或压力测试时,使用JMeter这样的工具来模拟大量用户请求,…...

Pod的调度机制

文章目录 一、Pod调度概述二、Pod调度策略实现方式三、kube-scheduler调度1、kube-scheduler调度的流程2、过滤阶段3、打分阶段4、kube-scheduler 调度示例4.1、创建 Deployment 资源清单4.2、应用Deployment4.3、查看被kube-scheduler自动调度的Pod 四、nodeName调度1、创建Po…...

JIT(即时编译)编译器

JIT(即时编译)编译器是Java虚拟机(JVM)中的一个重要组件,它的主要作用是将Java字节码(bytecode)在运行时动态编译成高效的机器码,从而显著提高Java程序的执行效率。JIT编译器优化是J…...

循环执行时数据的同步方式

在dataX-web中循环执行时数据的同步方式 解决中文comment中文乱码 在mysql中 # (0)修改库注释 alter table DBS modify column desc varchar(256) character set utf8; alter table DATABASE_PARAMS modify column PARAM_VALUE varchar(256) characte…...

Jvm G1与ZGC启动参数

G1GC G1GC 启动参数示例 -XX:UseG1GC -Xms4g -Xmx4g -XX:MaxGCPauseMillis200 -XX:InitiatingHeapOccupancyPercent45 -XX:G1HeapRegionSize16m -XX:ConcGCThreads2 -XX:ParallelGCThreads4 -XX:MetaspaceSize128m -XX:MaxMetaspaceSize512m -XX:ParallelRefProcEnabled -XX:…...

zdpgo_gin_zap 整合zdpgo_gin框架和zdpgo_zap框架的日志中间件,用于实现路由日志记录

zdpgo_gin_zap 整合zdpgo_gin框架和zdpgo_zap框架的日志中间件,用于实现路由日志记录 安装 go get github.com/zhangdapeng520/zdpgo_gin_zap使用教程 基本用法 package mainimport ("fmt""time"gin "github.com/zhangdapeng520/zdpg…...

FOC电流环

interrupt void ISRTimer0(void) { IQ_Ref2.2;//在电流环下给负电流电机反转 IQ_Fdbiq; IQ_ErrorIQ_Ref-IQ_Fdb; IQ_UpIQ_Kp*IQ_Error; IQ_UiIQ_Ui IQ_Ki*IQ_Up IQ_Kc*IQ_SatErr…...

工业设备数据采集方案的设计实施与应用-天拓四方

随着工业4.0时代的来临,工业设备数据采集成为了提升生产效率、优化能源管理、实现智能化决策的关键环节。本文将围绕工业设备数据采集的重要性、方案设计实施以及TDE工业网关的应用实践展开探讨,以期为相关企业提供一种清晰、专业且实操性强的数据采集方…...

【MySQL】索引——索引的实现、B+ vs B、聚簇索引 VS 非聚簇索引、索引操作、创建索引、查询索引、删除索引

文章目录 MySQL5. 索引的实现5.1 B vs B5.2 聚簇索引 VS 非聚簇索引 6. 索引操作6.1 创建主键索引6.2 创建唯一索引6.3 创建普通索引6.4 创建全文索引6.5 查询索引6.6 删除索引 MySQL 5. 索引的实现 因为MySQL和磁盘交互的基本单位为Page(页)。 MySQL 中…...

剖析HTML 元素——WEB开发系列02

HTML元素是构成HTML文档结构的基本单位,定义了页面上的不同部分和内容。HTML元素可以包含不同类型的内容,如文本、图片、链接、表格等,每种元素都有其特定的用途和语义。通过组合和嵌套不同的HTML元素,可以创建复杂的网页结构和布…...

影响3D打印零件品质的关键因素探析

随着科技的飞速发展,3D打印技术作为一种革命性的制造方式,正逐渐渗透到各个行业和领域。然而,尽管3D打印技术在设计和制造上带来了前所未有的灵活性和效率,但其零件品质却受到多种因素的复杂影响。本文将从设备性能、材料选择、工…...

Oracle事务是怎么练成的

什么是事务 事务是数据库管理系统执行过程的一个逻辑单位,由一系列有限的数据库操作序列构成,事务必须满足‌ACID属性。ACID理论是数据库中最重要的概念之一,分别代表原子性(Atomicity)、一致性(Consisten…...

线程与多线程(一)

线程与多线程(一) 一、线程1、概念2、示意图3、虚拟地址转换到物理地址4、与进程相比的优点5、与进程相比的缺点6、与进程的关系(1)线程独有(2)共享(3)示意图 二、POSIX线程库三、创…...

连接其他主机上的redis连接不上`telnet: Unable to connect to remote host: Connection refused`

telnet: Unable to connect to remote host: Connection refused 这个错误通常表示目标主机(192.168.8.29)上的服务(6379端口)没有运行,或者主机的防火墙/网络设置阻止了连接。 你可以尝试以下步骤来解决问题&#xf…...

dijkstral算法详解

import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Map;public class test39 {// 定义节点类,表示图中的顶点public static class Node {public int value; // 节点的值,即编号public int in; // 进入…...

创意指南丨AR数学沉浸式空间体验

AR学习种类那么多,哪款最吸引你? 星河造梦坊和Unity联手打造的沉浸式空间AR无疑是其中的佼佼者。 这款应用不仅利用AR技术将抽象的数学概念变得生动有趣,还通过互动体验让学习者仿佛置身于一个充满奇幻色彩的数学世界中。 无论是学生还是教…...

linux文件——深度学习文件fd、文件系统调用

前言:从本片开始正式进入linux文件的学习,本片内容主要是文件的fd。 本篇内容博主将要先带友友回忆C语言中的文件操作接口,然后再过渡到操作系统中的系统调用的学习,最后理解操作系统中的文件操作。 ps:本节内容设计一…...

003集——C#数据类型 及大小端序转换——C#学习笔记

如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸: using System;namespace DataTypeApplication {class Program{…...

结构化输出及其使用方法

在 LLM 应用程序中构建稳健性和确定性 图片来自作者 欢迎来到雲闪世界。OpenAI最近宣布其最新的gpt-4o-2024–08–06模型支持结构化输出。与大型语言模型 (LLM) 相关的结构化输出并不是什么新鲜事——开发人员要么使用各种快速工程技术,要么使用第三方工具。 在本文…...

yolov8人脸识别案例

GitHub - wangWEI201901/YOLOv8-Detection-Project: 🛣️基于YOLOv8的智慧校园人脸识别和公路汽车检测...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...