2009-06-11 8 views
1

私は、dbにクエリを行い、複合型のコレクションを返すWCFサービスを作成することが任されています。複雑な作業ではありませんが、サービスは複数のWebサイトからアクセスされます。これらのWebサイトでは、1日平均50万回の閲覧が可能です。WCFサービスが500k回/日アクセスされるための設計上の考慮

これを設計する際に考慮する必要がある特別な考慮事項はありますか?

ありがとうございます!

答えて

4

開発側にとって特別な問題はありません。 よく設計されたWCFサービスは、1000秒の要求に対応できます秒あたり。WCF用に、1台のクアッドコアXeon E5450 CPUを搭載した4x HP ProLiant BL460cブレード搭載のブレードシステムを使用して、毎秒22,000要求を表示します。私は、送信されるメッセージの複雑さや大きさについては見ていませんが、HPの主流サーバーでは、1秒間に1000メッセージ以上を得ることができるようです。そして良いデザインでは、スケールアウトはうまくいくでしょう。そのピークレートでは、WCF上に構築されたコミュニケーション層には、1日あたり500kというストレスがありません。

作業中のメッセージボリュームでは、を実行します。は、操作上の側面を考慮する必要があります。

:私が話されているWCFシステム(および他の.NETシステム)を監督するほとんどのシステムOPSの人々は午前中に、彼らはシステムの基本的なバイタルサインを見てみたい、アプローチを使用

ログ

  • 要求量の移動平均:1分、1時間、1日。
  • 歴史的な平均値
  • エラー/例外率とのそれらの量の比較:これらの量の1分、1時間、1日間
  • 比較

あなたの例外は、ボリュームに十分に低い場合(ほとんどの場合、彼らが必要be)、それらのすべてを特別なアプリケーションイベントログまたはその他の監査ログに記録することができます。これには、監査の保管などについていくつかの考えが必要です。それが難しい理由は、非常に例外的な条件が非常に高いボリュームのログにつながることがあるため、例外的な条件、つまりスノーボール効果が悪化することがあるからです。間違いなくこれを避けるために、例外ログを絞り込む必要があります。私が何を意味しているか知っていれば、「ポップオフバルブ」。

データストア
そしてもちろん、あなたは、データ・ソースは、それが何であれ、あなたはそれで投げているクエリのボリュームをサポートできることを保証する必要があります。優れた市民権の問題のように、データストアからの負荷を軽減するためにサービスにキャッシュを実装することができます。私が引用したベンチマークでは

ネットワーク
、ネットワークはかなり広く開いたギガビットイーサネットました。あなたの環境では、ネットワークが共有されている可能性があります。追加の負荷が合理的であることを確認する必要があります。

+0

Cheesoのリンクは、私にいくつかの学習教材を与えてくれた素晴らしいリンクです。マイクロソフトは偉大な会社ですが、この種のサンプルアプリを宣伝することはしばしば望ましいことです。私はベンチマークpdf文書を見て、製品を比較するうえで合理的な仕事をしたようです。 – Peter

関連する問題