首页 > 解决方案 > JMeter:运行“许多”线程时出现 javax.net.ssl.SSLException

问题描述

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect

1600278792845,6688,Category page,Non HTTP response code: javax.net.ssl.SSLException,Non HTTP response message: Connection reset,10.0.4.22-Thread Group 1-1619,text,false,Test failed: code expected to match /200/,3985,0,1830,1830,https://<my-test-url>,0,0,148

我正在从具有三个从节点的主节点运行我的 JMeter 测试。当使用“低”数量的线程(即~200)时,测试运行没有任何错误。但是,如果我将线程数增加到 ~300,我开始在我的 .jtl 文件中收到上述错误消息。这是什么意思?

如果我在单个从节点上运行 1000 个线程(仍然从主节点执行),我不会收到任何错误。

一些想法:

系统信息:

标签: load-testingjmeter-5.0

解决方案


  1. 首先确保检查您的应用程序日志,因为它可能表明被测系统存在问题。如果您确定您的应用程序运行良好,您可以考虑遵循JMeterSocketClosed wiki 页面中的建议
  2. If I run 1000 threads on a single slave node (still executed from the master node), I get no errors.- 检查吞吐量(每秒的命中数),因为单个节点可能缺乏资源并且无法足够快地发送请求,并且当您在分布式模式下运行 900 个线程时,您会执行更高的吞吐量。要检查的图表是每秒事务数每秒服务器命中数
  3. I would expect a java.lang.OutOfMemoryError exception if the slave node(s) itself couldn't run this many threads.- 不一定,JMeter 只是因为垃圾收集过多而执行请求更慢
  4. 考虑升级到JMeter 5.3 (或JMeter 下载页面上提供的最新稳定版本),因为您可能遇到已修复的 JMeter 问题,根据 JMeter 最佳实践,您应该始终使用最新版本的 JMeter

推荐阅读