IO错误:Jmeter负载测试中网络适配器无法建立连接

IO错误:Jmeter负载测试中网络适配器无法建立连接

我正在使用 Jmeter 对 Web 服务 SOAP 进行负载测试,在非 GUI 模式下,我从 300 线程数开始收到错误,这是通过以下规则的“响应断言”检测到的:“测试失败:文本不应包含 /“rta”:“FAIL”/”。

在 GUI 模式下,我可以在“查看结果树”中看到几个样本的错误:

IO 错误:网络适配器无法建立连接

我当前的 Oracle 配置是:

select current_utilization, limit_value 
from v$resource_limit 
where resource_name='sessions';

平均运输成本:

current_utilization, limit_value
177, 987

游标

select max(a.value) as highest_open_cur, p.value as max_open_cur
  from v$sesstat a, v$statname b, v$parameter p
  where a.statistic# = b.statistic# 
  and b.name = 'opened cursors current'
  and p.name= 'open_cursors'
  group by p.value;

平均运输成本:

  highest_open_cur, max_open_cur
  241, 4000

此错误与 Oracle 数据库中的某些配置有关吗?


更多信息: ...

数据库版本:

Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production

Jmeter设置:

Inter® Xeon® Gold 6126 CPU @2.6 Ghz 
4 Sockets, 4 Virtual Processors
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
HEAP=-Xms20G -Xmx20G -XX:MaxMetaspaceSize=128m
Windows Server 2016 Standard

测试计划:

  • 线程组(线程数 320、启动期 37、循环数 1)
  • 5 个 HTTP 请求,每个请求有 1 个断言。
  • 1 个监听器 PerfMon 指标收集器

服务器指标

网络

答案1

错误是由Oracle JDBC 驱动程序当无法与数据库建立连接时。

这是另一个例子有人遭受同样的问题。

我的预期是,你的应用程序没有正确使用连接池模式(或者根本没有实现),因此执行查询后不会关闭连接。我建议使用分析器工具检查您的应用程序,例如剖析器或者您的套件- 这样您将更清楚地了解正在发生的事情。

另一种解决问题的方法是针对数据库运行负载测试,即使用 JMeter 的直接执行查询,而无需中间的 SOAP API 调用JDBC 请求采样器。这样,您就可以说数据库工作正常,问题出在 Java 应用程序上(反之亦然)。请参阅使用 JMet 构建数据库测试计划的真正秘诀熟悉使用 JMeter 进行数据库负载测试的概念。

相关内容