在jmeter中收到错误“响应代码:非HTTP响应代码:org.apache.http.conn.HttpHostConnectException”

时间:2019-09-18 20:19:30

标签: c# asp.net sql-server jmeter

我正在使用Jmeter在.Net Web应用程序上运行负载测试。 申请流程:启动-登录-开始测试-回答问答-主页-注销

到500个用户,有时是750个,测试运行成功。但是当我增加负载时会出现错误:

Non HTTP response code: org.apache.http.conn.HttpHostConnectException/Non HTTP response message:
Connect to www.demoname.com:80 [www.demoname.com\/11.111.111.111] failed: Connection timed out: connect 

'11 .111.111.111'-是我的服务器IP地址

我已将jmeter.batch文件的堆内存增加到HEAP = -Xms1g -Xmx4g -XX:MaxMetaspaceSize = 256m

Apache Jmeter版本-5.1.1r1855137

Java版本-1.8.0_221

服务器配置:标准D4 v2(8 vcpus,28 GiB内存)

如何摆脱这个错误?

1 个答案:

答案 0 :(得分:0)

HttpHostConnectException本质上是ConnectException的一个实例,

  

表示尝试将套接字连接到远程地址和端口时发生错误。通常,远程拒绝连接(例如,没有进程正在侦听远程地址/端口)。

所以很可能该错误发生在您的服务器端,因为JMeter尝试建立连接,但未能在定义的超时范围内完成连接

  1. 如果您完全确定自己的应用程序可以正常运行,则可以在HTTP Request Defaults

    中增加连接超时时间

    enter image description here

  2. 但是,更好的主意是找出错误的底部并将其修复在服务器端,最可能的原因是:

    • 您的应用程序过载,即缺少诸如CPU,RAM,网络等基本资源。请确保使用Azure MonitorJMeter PerfMon Plugin
    • 设置对这些指标的监视
    • 您的应用程序基础架构配置不正确,请确保仔细检查后端是否针对高负载(包括IISMSSQL

      )进行了正确的调整
    • 可能是您的应用程序代码有问题的情况,即由于算法实施不正确,它无法处理X个以上的用户。考虑使用诸如NProfilerdotTrace之类的探查器工具来检测最昂贵的功能,最大的对象等。