6

SQLServerExpressが組み込まれたWindows7で実行されている.netクライアントがあります。これらは切断されて実行され、中央サーバーにダイヤルインして情報をダンプし、関連する新しい情報をプルダウンすることがよくあります。分散システム全体のストレステストを行いたいと考えており、これを行うための費用対効果の高い方法を考えようとしています。私たちの開発者の1人は、Amazonクラウドを使用して1000クライアントを起動するというアイデアを持っていましたが、WindowsサーバーのO / Sのみをサポートしており、テストを複数回再実行する必要がある場合は、いくらかのお金がかかる可能性があります。 。

1000台のクライアントをすべて1台のマシンでシミュレートすることを検討しました。これにより、1000台のクライアントがあり、すべての呼び出しが非同期で行われるようになりますが、1台のマシンで実行している場合、上限の一部は1台のマシンのRAMとプロセッサになります。システムなので、それがどのように「本物の」写真を私たちに与えるのかわかりません。

すべての呼び出しは、クライアントとサーバー間のWCFで発生します。

この分野での経験はありますか?もしそうなら、どのように取り組みましたか?

ありがとう、

スーパーティミー

4

3 に答える 3

1

SOASTAをご覧になりましたか?クラウドベースの SOA 負荷テストを提供します。

于 2011-02-28T20:05:13.850 に答える
0

分割統治法で、ターゲットテストサーバーを開発者と同じスイッチに接続できるかどうかを確認します。これらのマシン間でクライアントを分割し、全員がテストサーバーに対して実行できるようにします。(同じスイッチに固執することで、ハードウェアでの結果を歪めることからネットワーク効果を取り除きます)

開発者は通常、かなり汚れたマシンを持っており、通常はいくつかあります。そうすれば、テストマシンを破壊せず、何が発生するかを監視できます。

理想的には、開発マシンでVisualStudio2010負荷テストエージェントを使用できるようになります。このツールを使用すると、テスト中のすべてのマシンの統計を監視し、サーバーの応答を非常によく把握できます。

テストテストを実行しているマシンがローカルホスト上で必要なWebサービスを呼び出すWebページをホストしている場合、テストを開始するための最善の策である可能性があります。

これは、開発環境の正確な性質とVisualStudioのライセンスの取り決めによって異なります。

把握する重要なことの1つは、各クライアントがWCFWebサービスに対して行う1秒あたりの要求数です。その数を取得したら、その数を各テストマシンの最大リクエスト/秒で割って、必要なテストマシンの数を計算できます。

負荷テストの目的で、Webサービスの「実際の」クライアントを用意する必要はありません。Webサービスはインターフェースであるため、通常のクライアントのアクティビティをシミュレートし、通常の「思考時間」の一時停止なしで実行できるため、実行中の各クライアントのインスタンスを必要とせずに、1000クライアントの負荷をテストできます。

たとえば、各クライアントが1分に1回、合計1000/60=16.7コール/秒でWebサービスにアクセスする場合。各呼び出しが3秒で完了する場合、50人の仮想ユーザーが同じ負荷を作成できます(50/3 = 16.7)。経験から、Visual Studio負荷テストを実行している2台のマシンは、負荷を生成でき、CPUに過負荷をかけることはありません。

于 2011-02-28T22:24:18.487 に答える
0

HTTP を介したテキストベースのプロトコルで WCF を使用している場合 (その可能性が高いと思われます)、さまざまなツールを利用できます。ほとんどの Web 負荷テスト ツールは、ブラウザーへのプロキシとして機能することで HTTP トラフィックを記録できます。これにより、通常、リッチ クライアントからの記録も可能になります。ツールはブラウザーをシミュレートするように最適化されているため、テストケースをさらにカスタマイズする必要がある場合があります。私たちはいくつかのクライアントに対してこれを行いましたが、かなりうまくいきました。

多くの負荷テスト ツールは、クラウドからの負荷の生成をサポートしています (当社の Web Performance Load Tester や、BrowserMob、LoadStorm などの他のツールを含む)。良い。

于 2011-03-07T14:00:31.217 に答える