Oracle

IO 錯誤:網路適配器無法在 Jmeter 負載測試中建立連接

  • August 26, 2018

我正在使用 Jmeter 對 Web 服務 SOAP 進行負載測試,在非 GUI 模式下,自 300 Number of Threads 開始出現錯誤,這是通過使用此規則的“響應斷言”檢測到的:“測試失敗:文本預期不是包含 /“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 指標收集器

伺服器指標

網路

Oracle JDBC 驅動程序在無法與數據庫建立連接時拋出該錯誤。

這是另一個遭受同樣問題的人的例子。

我的期望是您的應用程序沒有正確使用連接池模式(或者根本沒有實現),因此在執行查詢後連接不會被關閉。我建議使用JProfilerYourKit之類的分析器工具檢查您的應用程序- 這樣您就可以更清楚地了解正在發生的事情。

另一種解決問題的方法是對數據庫執行負載測試,即直接執行查詢,而無需使用 JMeter 的JDBC 請求採樣器進行臨時 SOAP API 呼叫。這樣您就可以說明數據庫工作正常,而問題出在 Java 應用程序上(反之亦然)。請參閱使用 JMeter 建構數據庫測試計劃的真正秘密,以熟悉使用 JMeter 進行數據庫負載測試的概念。

引用自:https://serverfault.com/questions/901509