c# - 在 jmeter 中收到错误“响应代码:非 HTTP 响应代码:org.apache.http.conn.HttpHostConnectException”
问题描述
我正在使用 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 内存)
我怎样才能摆脱这个错误?
解决方案
HttpHostConnectException基本上是ConnectException的一个实例,它:
表示尝试将套接字连接到远程地址和端口时发生错误的信号。通常,连接被远程拒绝(例如,没有进程正在侦听远程地址/端口)。
所以很可能错误出现在您的服务器端,因为 JMeter 尝试建立连接并且未能在定义的超时范围内执行此操作
如果您绝对确定您的应用程序正常工作,您可以在HTTP 请求默认值中增加连接超时
然而,一个更好的主意是找出错误的根源并在服务器端修复它,最可能的原因是:
- 您的应用程序过载,即缺少 CPU、RAM、网络等基本资源。确保使用Azure Monitor或JMeter PerfMon 插件设置对这些指标的监控
您的应用程序基础架构配置不正确,请务必仔细检查您的后端是否针对包括IIS和MSSQL在内的高负载进行了适当调整
这可能是您的应用程序代码有问题的情况,即由于算法实施不善,它不能处理超过 X 个用户。考虑使用像NProfiler或dotTrace这样的分析器工具来检测最昂贵的函数、最大的对象等。
推荐阅读
- migration - VMWARE - 迁移出错 - 失败
- c# - 如何在 ASP.Net Blazor 服务器端使用 jCrop
- python - Python如何从复杂的字典中获取值?
- python-3.x - 最长子字符串及其长度,不包含重复字符
- ios - 什么可能导致 epub、mobi 和 zip 文件无法在运行 ios 13 的 iPhone 上下载?
- jquery - 在ajax之前显示的jQuery模态表单
- android - Android EditText 不可见且不显示键盘
- azure - 无法使用 API 获取任何响应天蓝色存储表
- python - 编译由 bazel 提供的 tensorflow 时出现错误:Python 配置错误:--define PYTHON_BIN_PATH='/usr/bin/python3' is not executable
- php - 在laravel中的某些情况下自动将数据插入数据库