100 个用户工作正常,对于 200 个用户,它会给出“javax.net.ssl.SSLHandshakeException”错误,并显示“握手期间远程主机关闭连接”消息

Posted

技术标签:

【中文标题】100 个用户工作正常,对于 200 个用户,它会给出“javax.net.ssl.SSLHandshakeException”错误,并显示“握手期间远程主机关闭连接”消息【英文标题】:100 users works fine, for 200 it gives "javax.net.ssl.SSLHandshakeException" error with "Remote host closed connection during handshake" message 【发布时间】:2016-06-15 23:09:11 【问题描述】:

我有这个 JMX 脚本,当我使用笔记本电脑为 100 个虚拟用户运行时,它运行良好,没有任何错误。 Here 是运行的 BlazeMeter 报告。但是当我将虚拟用户增加到 200 时,它给了我这个 SSLHandshakeException 错误。请查找 BlazeMeter 错误报告here。

为了验证,系统可以处理 200 个虚拟用户,我使用了四台 AWS JMeter 机器(每台机器加载 50 个虚拟用户)并运行相同的脚本,没有发现任何问题。 Here 是这次运行的报告。

我想知道当我在笔记本电脑上为 200 个虚拟用户运行它时会出现什么问题。谁能帮帮我吗?什么会导致这种情况?

请注意,我使用的是 16GB RAM 机器(为 JMeter 分配了 10GB 内存),更新了 Jmeter 属性文件(“httpclient4.retrycount=1”)和“hc.parameters”(启用了“http.connection.stalecheck $Boolean=true" 并增加了 \bin 文件夹中的套接字超时 "http.socket.timeout$Integer=600000") 文件。

提前致谢! --伊什蒂

【问题讨论】:

如果您使用 HTTP 而不是 HTTPS,它的行为如何? 对于错误情况,您是从安装在本地计算机上的 JMeter 还是从 BlazeMeter 云服务运行脚本。只是想确认一下。 EJP,服务器需要 HTTPS,没有尝试使用 HTTP。 TestingWithArif,对于错误情况,我从安装在本地机器上的 JMeter 运行脚本,而不是从 BlazeMeter 运行脚本。 【参考方案1】:

考虑到本地和 AWS 运行的响应时间差异(1.55 秒与 0.6 秒),并且事实上负载不会随着虚拟用户数量的增加而增加,我预计您的笔记本电脑要么没有足够的硬件资源来启动200 个并发用户,或者您没有足够的网络带宽。使用 JConsole 或类似的东西检查 JMeter JVM 统计数据,并使用 Windows Performance Monitor 或同等工具检查主要操作系统指标。

此外,如果您没有对stgbasalt.peopleanswers.com 域进行负载测试,最好将其(以及其他外部域)从您的测试计划中排除。如果它来自嵌入式资源 - 通过“URL 必须匹配”部分对其进行过滤,请参阅Excluding Domains From The Load Test 指南了解更多信息。

【讨论】:

以上是关于100 个用户工作正常,对于 200 个用户,它会给出“javax.net.ssl.SSLHandshakeException”错误,并显示“握手期间远程主机关闭连接”消息的主要内容,如果未能解决你的问题,请参考以下文章

在第6731次释放指针后双重免费或损坏

使用 angularJS 和 DOM 修改加载 100 个用户的数据

无法在momentjs中选择minDate

LoadRunner 用户并发数的问题

性能测试中容易混淆的概念

关于海量级存储用户标签体系架构