首页 > 其他分享 >性能压测过程中常见连接错误分析

性能压测过程中常见连接错误分析

时间:2023-02-27 18:02:46浏览次数:38  
标签:请求 错误 压测 报错 超时 连接 服务端

1、在压测过程中报错:连接超时(ConnectTimeout)

产生原因:

1)、可能是压测工具本身有连接超时设置引起

a)、如在Jmeter http请求 页面,advanced 页签, 有 timeout 设置,可以对发送请求和返回请求进行超时设置,如把 connect 和 response 端都设置为 30 000 (30s);

b)、如在Jmeter 的  jmeter.properties 中:httpclient4.idletimeout = 30000 (延迟 30 s,一般设置为 10 - 60 s )

2、可能是服务端存在连接超时问题

a)、先分析一下压测接口的数据链路

b)、根据链路来一步步分析每层可能出现的连接超时情况,如Nginx,mq,redis,微服务,数据库每个层面都会可能出现连接超时的情况


2、在压测过程中报错:连接被拒绝( Connection refused)

1)、首先检查网络和服务器状态,排除物理连接问题

2)、高并发时有些接口会有限流操作,还有的请求在介入层Nginx就可以进行限流(nginx_http_limit_conn_Module),然后请求连接就被拒绝了

3)、有些中间件如 Tomcat,有最大等待数设置,如 accept-count 值。acceptCount是能够接受的最大等待数,当等待队列被放满了,这时当再来新的请求时就会被 Tomcat 拒绝。

4)、对于数据库,如mysql,mongoDB等有个最大连接数,如果请求超过最大连接数,也会拒绝请求。


3、在压测过程中报错:连接被重置(Connection reset)

1)、笔者在压测实战中,有遇到过连接被重置的情况,后面发现是因为压测网络的域名出现了问题,找运维解决好后就好了。

2)、可能是服务端和客户端的连接方式不一样,需要同时使用相同的连接方式如长连接或短连接。

3)、HTTPS协议,可能存在TLS版本不一致情况,把服务端和客户端使用相同的TSL版本。


4、在压测过程中报错:Socket closed

1)、原因分析:Linux 服务端的连接数默认为1024,设置小了,对于高并发时,明显不够

修改 三个参数  vim   /etc/sysctl.conf

net.ipv4.ip_local_port_range = 1024 65535

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

修改后  sysctl -p


5、在windows下用 Jmeter 做压力测试时,报错:java.net.BindException: Address already in use: connect。

原因:windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错。

解决办法(在jmeter所在服务器操作):

1)、cmd中输入regedit命令打开注册表;

2)、在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右键Parameters;

3)、添加一个新的DWORD,名字为MaxUserPort;

4)、然后双击MaxUserPort,输入数值数据为65534,基数选择十进制;

5)、完成以上操作,务必重启机器,配置才能生效。

标签:请求,错误,压测,报错,超时,连接,服务端
From: https://blog.51cto.com/u_14103476/6088781

相关文章

  • HHDESK局域网连接功能
    近年来,许多单位和部门根据实际需要都组建了局域网,这为日常事务处理带来了极大的便利。然而也有许多的局域网相互独立,未实现真正意义上的信息共享。因此,网络互联在这种环境......
  • Ubuntu apt下载:无法修正错误
    问题:在为cpp下载mysql函数库的时候显示:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。解决:其主要原因是因为不同的Ubuntu版本对应的源......
  • 配置ssh连接git
    在学习GitHub上的开源代码时,为了方便经常需要通过git从github克隆代码,如果是首次从github克隆代码时经常会碰到下面的提示:Warning:Permanentlyadded'github.com,20.20......
  • echart折线图异常多出一条连接线
     开发背景:vue3父传子,父中调子组件echarts图表问题:第一次进入数据图表正常,再次进入不更新图表数据的情况下,图表异常多出来一条开始到结尾的连接线原因:上次数据没清空解......
  • Python 错误:ModuleNotFoundError: No module named 'conf'
    问题描述:编译器无法使用cmd命令来执行py文件,结果可能报ModuleNotFoundError的错误。比如在cmd任务栏执行:python E:\myProgram\Python\spider\NetDealer\core\ot......
  • LDAP Admin连接AD域与OpenLdap
    LDAPAdmin版本:1.8.3域为kittlen.com账号为:administrator21.128为AD域所在地址21.127为OpenLdap所在地址Username填写方式不同如果连接进去无法进行用户的添加操作,可以选......
  • 列式数据库clickhouse的JDBC连接Demo
    列式数据库clickhouse的JDBC连接Demo1、JDBC代码:packagecom.fs.idc.qh.util;importru.yandex.clickhouse.ClickHouseConnection;importru.yandex.clickhouse.Clic......
  • php怎么连接sqlsrv
    连接MicrosoftSQLServer数据库时,可以使用PHP中的sqlsrv扩展程序来连接数据库。以下是连接MicrosoftSQLServer数据库的一些示例代码:首先,确保已经安装并启用sq......
  • 关于linux软连接
    创建软连接ln-sabc.txtabc使用可查询当前目录下所有软连接find-typel-execls-l{}\;取消/删除软连接(建议)unlink./abc......
  • Mybatis连接数据库
    从零开始Mybatis连接数据库创建Maven文件File-->new-->project-->maven,点击next配置在出现的pom.xml文件中<project>标签之间加入以下内容<!--打包方式--><packa......