34
  1. 上限枚数を教えてください。負荷テストを実施するために JMeter 2.4 で使用できるスレッドの数は?

  2. 単一のループですべてのスレッドを取得することと、少ない回数を使用することに違いはありますか。スレッドの数とループを初期化して、同じ数を達成します。ユーザー/スレッドの?

例:

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

と同じかどうか

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

それとも結果に違いはありますか?

4

6 に答える 6

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

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

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

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

于 2010-08-20T14:48:03.440 に答える
10

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

于 2010-08-24T14:57:53.823 に答える
8

これは、シナリオとテスト ケースの作成後にここで立ち往生することが非常に一般的です。JMeter を使用して実行する必要があり、JMeter スレッド グループで使用できるユーザーまたはスレッドの数の値を修正する必要があります。ロード ジェネレーターまたは JMeter インスタンスのいずれかを抑制したくないため、基本的に、両方のケースで微調整が必​​要です。そうしないと、テストの出力に価値がなくなり、何時間もの時間を失うことになります。だからここに私たちが考慮する必要があるものがあります: -

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

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

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

NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

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

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

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

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

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

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

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

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

負荷シナリオに関してのみ、ユーザー/スレッド (アクティブなスレッド) の同時実行数を見積もる必要があります。

Memory consumptionまた、サーバーが80% 未満CPU usagesで稼働しているかどうかを監視する必要があります。これらの使用率が 80% を超える場合、これらのテストはレポートとして信頼できないと見なしてください。

これら 2 つのブログをよりよく理解するには、 JMeter は何人のユーザーをサポートできますか? JMeter 負荷テストの「メモリ不足」の失敗に対する 9 つの簡単な解決策が役立つはずです。

于 2016-07-02T09:05:02.340 に答える
6

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

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

お役に立てば幸いです。

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

于 2012-12-21T18:23:54.403 に答える
2

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

問題を回避するには、スクリプト内のカスタム Java ランタイム引数を使用してモードで実行してOutOfMemoryみてください。デフォルトは 512 MB です。jmeterNON-GUIjmeterapache-jmeter/bin/jmeter

于 2018-10-21T07:34:47.027 に答える