Oracle
IO 錯誤:網路適配器無法在 Jmeter 負載測試中建立連接
我正在使用 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 驅動程序在無法與數據庫建立連接時拋出該錯誤。
這是另一個遭受同樣問題的人的例子。
我的期望是您的應用程序沒有正確使用連接池模式(或者根本沒有實現),因此在執行查詢後連接不會被關閉。我建議使用JProfiler或YourKit之類的分析器工具檢查您的應用程序- 這樣您就可以更清楚地了解正在發生的事情。
另一種解決問題的方法是對數據庫執行負載測試,即直接執行查詢,而無需使用 JMeter 的JDBC 請求採樣器進行臨時 SOAP API 呼叫。這樣您就可以說明數據庫工作正常,而問題出在 Java 應用程序上(反之亦然)。請參閱使用 JMeter 建構數據庫測試計劃的真正秘密,以熟悉使用 JMeter 進行數據庫負載測試的概念。