JMeter:运行“许多”线程时出现 javax.net.ssl.SSLException

Posted

技术标签:

【中文标题】JMeter:运行“许多”线程时出现 javax.net.ssl.SSLException【英文标题】:JMeter: javax.net.ssl.SSLException when running 'many' threads 【发布时间】:2020-09-16 18:12:37 【问题描述】:
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 个线程(仍从主节点执行),则不会出现错误。

一些想法:

如果从属服务器会出现java.lang.OutOfMemoryError 异常 节点本身无法运行这么多线程。 测试是在 Azure 环境中执行的,因此我不认为这是网络问题之类的,因为 Azure 应该能够处理这么多的流量

系统信息:

Ubuntu 18.04 在所有机器上 Java 8 JMeter 5.0

【问题讨论】:

【参考方案1】:
    首先确保检查您的应用程序日志,因为它可能表明被测系统存在问题。如果您确定您的应用程序运行良好,您可以考虑遵循 JMeterSocketClosed wiki 页面中的建议 If I run 1000 threads on a single slave node (still executed from the master node), I get no errors. - 检查吞吐量(每秒的命中数),因为单个节点可能缺乏资源并且无法足够快地发送请求,并且当您在分布式模式下运行 900 个线程时,您会执行更高的吞吐量。要检查的图表是 Transactions per Second 和 Server Hits per Second I would expect a java.lang.OutOfMemoryError exception if the slave node(s) itself couldn't run this many threads. - 不一定,JMeter 可以因为过多的请求而更慢地执行请求 garbage collection 考虑升级到JMeter 5.3(或JMeter Downloads 页面上提供的任何最新稳定版本),因为您可能遇到已修复的JMeter 问题as per JMeter Best Practices you should always be using the latest version of JMeter

【讨论】:

以上是关于JMeter:运行“许多”线程时出现 javax.net.ssl.SSLException的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在运行 mvn clean install 时出现 errorRebind 结果“javax.validation.ValidatorFactory”必须是一个类?

JMeter 非 HTTP 响应代码:在 Kubernetes 上运行时出现 java.net.UnknownHostException

javax.net.ssl.SSLHandshakeException 通过 Cajo over SSL 连接时出现问题

jaxb 编组时出现 javax.xml.bind.PropertyException

在 Tomcat 上实现 Jersey 时出现“javax.servlet.ServletException: java.lang.NoClassDefFoundError”

尝试解析 EL 中的布尔属性时出现 javax.el.PropertyNotFoundException