web-dev-qa-db-ja.com

スレッドと反復回数はテストにどのように影響し、JMeterの最大値はどのくらいですか。スレッド制限

  1. 最大数のnoを教えていただけませんか。 JMeter 2.4で負荷テストを実行するために使用できるスレッドの数

  2. 1つのループですべてのスレッドを取得することで、またはそれを減らすことで違いはありますか?スレッドの数を増やし、ループを初期化して同じ番号を実現します。ユーザー/スレッドの?

例:

No. of threads=500
Ramp up=1000
Loop=1 

それが同じかどうか

No. of threads=50
Ramp up=100
Loop=10

または結果の点で違いはありますか?

31
Parvez
  1. スレッドの最大数は多くの要因によって決定されます。この回答を参照してください https://stackoverflow.com/a/11922239/460802

  2. あなたが提案しているものには大きな違いがあります。

    • 「500スレッド、ループ1」は、500スレッドを意味しますATループを1回実行するのと同じ時間。
    • 「50スレッド、ループ10」は、50スレッドのみを意味しますATループを実行するのと同じ時間10回。

理論的には同じ数(500)の結果が得られますが、サーバーへのアクセス方法はまったく異なります。

21
BlackGaff

ユーザーの最大数は、OS、無料RAMおよび接続によって異なります。WinXPは、同時に3000プロセスに制限されています。Linuxでは3000を超えます。しかし、私はそれほどではありません。サーバーをテストし、マシンで3000スレッドを開始する場合、多くのリソースを必要とし、テストは現実的ではないことに注意してください。マシンごとに最大300ユーザーを開始することをお勧めします。分散テストを使用するよりもユーザー数を増やす(DoS攻撃としてより多くのマシンを使用する)理論的には、リクエストの数は同じですが、時間の複雑さは同じではありません。

9
Ballon

1:もちろん、それはJMeterを実行しているマシンに大きく依存しますが、走行距離が重要であれば、いくつかのヒントを与えることができます。 JMeterを使用すると、同じボックス内で複数のプロセスを実行できます。通常、JMeterインスタンスごとに最大200のスレッドを生成することはかなり信頼できます。それ以上必要な場合は、複数のJMeterインスタンスを使用することをお勧めします。少し調整を加えた最新のマシンでは、500から1000のスレッドを簡単に生成できます。 Linuxを使用する場合は、おそらくファイル記述子の最大数を増やす必要があります( ここを参照 )。

GUIなしでJMeterを実行し、後でレンダリングするためにファイルにレポート/グラフィックスデータを書き込むのに役立ちます。また、ネットワークの制限にも注意を払う必要があります。 Gbpsネットワーク内のサーバーが数千のリクエストを生成するのは簡単ですが、54 Mbpsルーターを共有するラップトップははるかに制限されます。サーバーへの実際の接続をリクエストのサイズで除算すると、帯域幅によって制限されるかどうかがわかります。 HTML応答で参照されているファイルをダウンロードするかしないかは、JMeterの設定に特に注意してください。

お役に立てれば幸いです。

2:BlackGaffが説明したとおりです。「500スレッド、ループ1」は500スレッドを意味しますATループを一度に実行するのと同じ時間。「50スレッド、ループ10」は50スレッドのみを意味しますATループを実行する同じ時間TEN TIMES。

5
blpsilva

これは、シナリオとテストケースの作成後にここでスタックするのが非常に一般的です。JMeterを使用して実行する必要があり、JMeterスレッドグループで使用できるユーザーまたはスレッドの数の値を修正する必要があります。 LoadジェネレーターもJMeterインスタンスもスロットルしたくないので、基本的に、両方のケースでtweakingが必要です。それ以外の場合、テストの出力は無意味であり、私たちは何時間もの時間を失うでしょう。だからここに私たちが考慮する必要があるものがあります:-

  • JMeterはJavaで動作するツールです[〜#〜] jvm [〜#〜]。最大の機能を取得するには、実行中にJMeterに最大のリソースを提供する必要があります。最初に、ヒープサイズを増やす必要があります(JMeter binディレクトリ内で、jmeter.batを取得します/ sh)
_HEAP=-Xms512m –Xmx512m
_

これは、デフォルトで割り当てられたヒープサイズが最小512MB、最大512MBであることを意味します。独自のPC構成に従って構成します。 OSにもある程度のメモリが必要なので、すべての物理RAMを割り当てないでください。

  • 次に、メモリ割り当て率を追加します

_NEW=-XX:NewSize=128m -XX:MaxNewSize=512m_

つまり、メモリはこのレートで増加します。負荷生成が最初に非常に高い場合、これを増やす必要がある可能性があるため、注意する必要があります。範囲が広すぎると、JVM内のヒープ領域が断片化することに注意してください。その場合、Garbage Collectorは、クリーンアップするために一生懸命働く必要があります。

  • JMeterはJava GUIアプリケーションです。非GUI版もあり、リソースをあまり消費しません(CPU/RAM)。JMeterを非GUIモードで実行すると、より少ないリソースを消費し、より多くのスレッドを実行できます。

  • すべてのリスナーを無効にする:テスト実行中。これらはデバッグ専用であり、目的のスクリプトを設計するために使用します。

負荷テスト中はリスナーを無効にする必要があります。それらを有効にすると追加のオーバーヘッドが発生し、テストのより重要な要素が必要とする貴重なリソースが消費されます。

  • 常に最新のソフトウェアを使用するようにしてください。 JavaとJMeterを更新してください。

  • リクエストとレスポンスヘッダーの保存に関しては、アサーション結果とレスポンスデータが大量のメモリを消費する可能性があることを忘れないでください。したがって、絶対に必要でない限り、これらの値をJMeterに保存しないようにしてください。

つまり、要約すると、JMeterスクリプトにリスナーが含まれておらず、実行中のJMeterサーバー、ネットワークオーバーヘッド/バリア、およびJMeterスクリプトが最適化されていない場合、大まかな計算は次のようになります。

The total number of concurrent user = (total allocable memory)/(Size of all requests)

同時ユーザー数/スレッド(アクティブスレッド)は、負荷シナリオの観点からのみ推定する必要があります。

また、サーバー_Memory consumption__CPU usages_が実行されているかどうかを監視する必要があります80%未満かどうか。これらの使用率が80%を超える場合、それらのテストはレポートとして信頼できないと見なします。

これら2つのブログの理解を深めるには JMeterがサポートできるユーザー数は? および JMeter負荷テストの「メモリ不足」の失敗に対する9つの簡単なソリューション が役立つはずです。

5
Adnan

Jmeterのスレッド実行には制限なしがあります。そのJavaベースのツールであるため、Javaスレッド機能を使用します。同時スレッド実行の場合、マシン構成(つまり、メモリサイズおよびCPU)。

OutOfMemoryの問題を回避するには、jmeterNON-GUIモードでカスタムJavaランタイム引数jmeterスクリプト内でApache-jmeter/bin/jmeter。デフォルトは512 MBです。

1
Harit Kumar
  1. あなたのマシンがJMeterを処理できる場合、JMeter自体にスレッドの制限はないと思います。テストの基本的な考え方は、スレッドの切り替えと待機時間は、実際のパフォーマンスメトリックにあまり影響を与えないことです。

  2. 2つのケースには大きな違いがあります。最初のケース、最悪のシナリオでは、500人の同時ユーザーがいます。 2番目のケースでは、同時ユーザーの最大数は50になります。シナリオ1の平均時間は、シナリオ2の平均時間よりも長くなります。

0
Rajan