1

サーバーは、SOAP 関数呼び出しインターフェースを提供します。
数百、おそらく数千の PC がその関数を呼び出します。
1 台の PC を使用してこれを負荷テストする必要があります。

現時点では、for ループしかありません。それで十分ですか?そうでない場合、どうすればテストをより現実的にすることができますか?

私はスレッド化を考えていましたが、SOAP 関数呼び出しがアトミックであると、何も得られません。たとえそうであっても、テスター PC で (CPU ごとに) アクティブなスレッドは 1 つしか存在できません。

それが明確であることを願っています。そうでない場合は、さらに情報を求めてください。

1 台で多数の PC をシミュレートして、これをテストする最良の方法は何ですか?


更新、私は VB Express 2008 を使用しています。SOAP リモート プロシージャ コールの実行中に CPU をブロックするように .NET が構築されているとは信じられません。

4

2 に答える 2

0

for ループを使用すると、おそらく同時リクエストは 1 つしか発行されません。ループを実行しているスレッドは、応答を待ってブロックされる可能性があります。これはスレッドをブロックしますが、多くのスレッドで共有できる CPU 全体をブロックしないことに注意してください。したがって、複数のスレッドを使用することで、複数のリクエストを同時に発行できます。

現在、サーバー上の SOAP ハンドラーはシングルスレッドにすることができます。これは、同時に 1 つの要求しか処理できないことを意味します。サーバーフレームワークはこのように動作しないように特別に設計されているため、これはほとんどありません。これが事実であることを発見しないことを願っています。

処理する必要がある同時要求の数を決定しましたか? シナリオによっては、10,000 のアクティブなクライアントのコレクションでさえ、10 の同時要求しか生成しない場合があります。これは、呼び出しの頻度と応答時​​間によって異なります。要求率 (要求/秒) によって、1 台のコンピューターから目的の負荷を確実に/正確にシミュレートできるかどうかが決まります。

于 2010-09-16T14:02:33.403 に答える
0

SOAP 呼び出しの原子性は、スレッド化の有用性にほとんど影響しません。

テスト マシンの速度が低下する前に、システムで許可される限り多くのスレッドを作成する必要があります。SOAP 呼び出しがすぐには戻らない可能性が高いため、CPU よりもさらに多くのスレッドでも多くの負荷が生成されます。4 つの CPU がある場合、最初の 4 つのスレッドが同時に SOAP 呼び出しを行い、次の 4 つのスレッドが元の 4 つの呼び出しが完了する前にさらに 4 つの呼び出しを行うことができます。これは複数のマシンの呼び出し元を正確にシミュレートするわけではありませんが、サービスを一度に呼び出す一連のテスト マシンと一連のスクリプトがなければ、そのシナリオを正確にシミュレートすることはできません。

編集: 上記のタイプミスを修正しました。単語は「like」ではなく「likely」にする必要がありました

于 2010-09-15T23:50:45.530 に答える