2012-03-06 21 views
3

この質問が1年であっても、私はまだこの質問に対して良い答えを探しています。私は、同じマシン上でホストされているWebサービスの通信のパフォーマンスが低いことについて、この問題を完全に理解するためのあらゆる情報を感謝します。同じサーバー内のWCF Webサービスの通信時間が長い

私は現在、集中的に通信するいくつかのWCF Webサービスを備えたシステムを開発中です。 これらは同じマシン上のIIS7上で実行されており、各サービスは異なるアプリケーションプール内にあり、複数のワーカーがWebガーデン内にあります。

各Webサービスを個別に評価している間に、リソース消費(プロセッサとメモリ)に問題なく、1分あたり10000-20000の要求を迅速に処理できます。

私はシステム全体をテストするか、2つのWebサービスによって形成されたサブシステムだけをテストすると、1分あたり2000リクエスト以上は処理できません。 また、Webサービス間の通信時間が大きな問題(時には10秒以上)であることがわかりました。しかし、毎分1000件の要求でのみテストすると、すべてがスムーズに実行されます(接続時間は60ミリ秒以下)。 私はSOAPUIとJMETERの両方でシステムをテストしましたが、テストツールではなく、システムログに基づいて時間が計算されました。 メモリとネットワークは問題ではありません(ほとんど使用されていません)。

その後、2台のサーバーと同じサーバーでホストされている2つの通信WCF Webサービスのパフォーマンスをテストしました。サービスが同じマシン上にある場合にはボトルネックがあり、接続数が10万から数千に減少することが再び考えられます。再び、メモリやプロセッサの制限はありません。

メモとして、私は非常に大きなデータを扱う場合があり、必要な操作のいくつかは長いものです。

perf.monを使用してメモリ、プロセス、webservice、aspnetなどについて何が起こっているのかを確認しましたが、間違っていることを示すことはできませんでした。 私はインターネット上で見つけられるすべてのパフォーマンス設定とチューニングオプションも試しました。

誰かが間違っていることを知っていますか?なぜWebサービス間の通信が長らく続くのでしょうか?なぜシステム内のエントリポイントとして機能するWebサービスは、単独でテストされたときに10000リクエスト/分を受け入れることができますが、別のWebサービスと通信するとほとんど2000を受け付けません。 これはIIS7の問題ですか?各Webサービスを別のサーバーに配備する場合、システムのパフォーマンスは向上しますか?

現在のシステムと将来のシステムのパフォーマンスを向上させるために、内部的にどのように機能するか(IISとWCFサービス)を理解したいと思います。

答えて

1

WCFパフォーマンスカウンタからのデータの収集を試みることもできます:同時呼び出し、インスタンス、期間、...さらに、WCF調整では、アプリケーションレベルで作成されるインスタンスまたはセッションの数を制限するために使用できるプロパティがいくつか用意されています。適切なインスタンスを作成することにより、WCFサービスのパフォーマンスを向上させることができます。 最後に、負荷テストでは、最大コンカレントHTTP接続、IIS制限、多数のロードクライアントを持つ異なるコンポーネントに適用する設定が多数あります。これによりロードテストが無効になります。

関連する問題