
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)
- それぞれ 1 つのアサーションを含む 5 つの HTTP リクエスト。
- 1 リスナー PerfMon メトリック コレクター
答え1
エラーはOracle JDBC ドライバーデータベースとの接続を確立できない場合。
ここはもう一つの例同じ問題に苦しんでいる人の。
私の予想では、あなたのアプリケーションは適切に使用されていないようです接続プールパターン(または単に実装されていない)のため、クエリの実行後に接続が閉じられません。次のようなプロファイラツールを使用してアプリケーションを確認することをお勧めします。Jプロファイラーまたはあなたのキット- こうすることで、何が起こっているのかをより明確に把握できるようになります。
問題の根本を突き止めるもう一つの方法は、データベースに対して負荷テストを実行することです。つまり、JMeterを使用して中間SOAP API呼び出しなしで直接クエリを実行します。JDBC リクエストサンプラー。こうすることで、データベースは正常に動作し、問題はJavaアプリケーションにある(またはその逆)と判断できるようになります。JMeter でデータベース テスト プランを作成するための本当の秘密JMeter を使用したデータベース負荷テストの概念を理解します。