我正在努力使用 jMeter 来测试我的 .NET Web 应用程序。我正在本地针对 Azure 中的暂存环境为我的应用程序运行 jMeter。击中一些端点,我得到:
java.net.ConnectException: Connection timed out: connect
这告诉我这是发生在我身上的事情,而不是由我的应用程序引起的。我的应用程序没有显示任何错误,并且可以轻松地处理这种规模的请求。
在这个特定的测试中,我有 300 个线程,启动时间为 10 秒,重复 3 次。
我可以做些什么来进一步诊断?客户端是否有某种限制?
最佳答案
JMeter 默认配置不适合产生高负载,您只能将其用于测试开发和调试。在运行负载测试时,您至少需要增加 Java Heap Space分配给 JMeter(默认情况下只有 512Mb,我认为您用来阅读此页面的浏览器的消耗量是其两倍)。
您还应该在 non-GUI mode 中运行您的测试由于 JMeter GUI 的设计目的是在生成或多或少的巨大负载时正确显示信息,因此您最多可以使用约 50 个线程。
更多信息:
我还建议在测试期间密切关注您的负载生成器健康状况,并收集有关 CPU、RAM、Swap、磁盘、网络使用情况以及一些 JVM 指标(如堆使用情况、垃圾收集等)的信息,以便您可以查看您的JMeter 实例配置得足够好,如果有足够的空间 wrt hadrware 资源等。当然在服务器端做是必须的。您可以使用 PerfMon JMeter Plugin收集此信息并将结果与其他测试指标一起绘制,以便您可以关联这些值并确定原因。见 How to Monitor Your Server Health & Performance During a JMeter Load Test插件配置和使用说明
关于Apache jMeter 因高负载请求而出错 - java.net.ConnectException : Connection timed out: connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40315261/