5

Azure はエラスティック スケーリングの概念を取り入れており、Worker Rolesでこれを実現できました。ただし、Web ロール( MVC アプリなど)に関しては、実行中のインスタンスの数を増やす (または減らす) タイミングを判断するために何を (またはどのように) 監視すればよいかわかりません。1 つまたは複数のパフォーマンス カウンターを監視する必要があると想定していますが、どこから始めればよいかわかりません。

スケーリングの決定に関連して MVC Web ロール インスタンスの負荷を評価するためのベスト プラクティスを推奨できる人はいますか?

4

1 に答える 1

4

監視は通常アプリ固有であるため、この質問は少し自由回答です。そうは言っても:

アプリの KPI を表す、ローカル サーバーで確認する簡単な測定値から始めます。例: ネットワークの使用率を調べます。この TechNet 記事では、System Center for Windows Azure によって収集されるパフォーマンス カウンターについて説明します。例えば:

  • ASP.NET アプリケーション リクエスト/秒
  • ネットワーク インターフェイス バイト
  • 受信/秒
  • 送信されたネットワーク インターフェイス バイト数/秒
  • プロセッサ % プロセッサ時間の合計
  • LogicalDisk 空きメガバイト
  • 論理ディスクの空き容量 %
  • 使用可能なメモリ メガバイト

また、キューに入れられたリクエストの数とリクエストの待ち時間を監視することもできます。

ネットワークの使用率は興味深いものです。コアあたり 100Mbps であり、CPU やその他のリソースが十分に活用されていない場合でもボトルネックになる可能性があります。高帯域幅のシナリオを処理するには、より多くのインスタンスにスケールアウトする必要がある場合があります。

また、私は CPU 使用率をあまり重要視しない傾向がありますが、測定は非常に簡単です (そして例で頻繁に示されます)。通常、 CPU をキャパシティ近くで実行することは良いことです。なぜなら、CPU にお金を払っており、可能な限り多く使用した方がよいからです。

減少する限り:これはもう少し慎重に処理する必要があります. Windows Azure コンピューティングは時間単位で課金されます。たとえば、11:50 に追加のインスタンスにスケールアウトし、12:10 に再度スケールインすると、2 つの CPU 時間が発生したことになります。また、スケールアウトしたくない場合は、新しい測定を行い、再びスケールバックできると判断します (インスタンスの追加と減少の一定のパルスを効果的に作成します)。簡単にするために、 Enterprise Libraryにある Autoscaling Application Block (WASABi) を検討してください。これにはすべてのスケール ルール (先ほど説明したものなど) が組み込まれており、非常に簡単に使用できます。

于 2012-09-19T01:50:19.157 に答える