2

要件は、Web サービスのストレス テスト用のアプリケーションを作成することでした。たとえば、サイズが 4 KB の 1000K の HTTPWebRequest を Web サービスに攻撃することを考えました。これを実現するために、いくつかのスレッドがキューに送信されるデータを追加し、スレッド プールが送信するような構造のアプリを作成しました。これらのリクエストは非同期に行われます。 Task responseTask = Task.Factory.FromAsync(testRequest.BeginGetResponse, testRequest.EndGetResponse, null);"しかし、今何が起こっているかというと、しばらくすると、1 秒あたりのリクエスト数が大幅に減少します (サービスの応答時間が増加したためかもしれません..しかし、再度リクエストを非同期で送信している場合、応答時間は問題になりますか? )。それに加えて、しばらくするとツールがクラッシュし、「アプリケーションが動作を停止しました」というメッセージが表示され、例外がメモリ不足の例外として表示されます。

私が観察したことの 1 つは、アプリがクラッシュする直前に、Web サービスの応答時間が大幅に増加することです。クラッシュの間接的な理由ですか?

それに対する救済策は何ですか?

4

1 に答える 1

0

おそらく、スロットリングせずにタスクをキューに入れているため、保留中のリクエストの量が無限に増加します。非同期動作を使用している場合でも、調整する必要があります。

于 2012-04-20T14:27:12.917 に答える