要求は実際にはどのくらい同時ですか? 全員がまったく同時にアドレスを入力しますか?
とはいえ、アプリをローカルでプロファイリングすると、Azure での CPU、ネットワーク、およびメモリの使用量を見積もることができます。次に、必要なインスタンスの数ではなく、要件を減らす方法を検討してください。これらのヒントを適用して、再度ローカルでプロファイリングします。
ほとんどのパフォーマンスのヒントには、CPU、メモリ、または帯域幅の使用量の間にトレードオフがあります。アイデアは、それらが均等にスケーリングされるようにすることです。アプリケーションのメモリが不足しているが、CPU とネットワークに負荷がかかっている場合は、使用しないでください。
単一ページの調査の場合、html、css、および js が縮小されていることを確認し、キャッシュ可能であることを確認してください。
可能であればそれらを組み合わせて、実際にスケーラブルにするために、静的ファイル (css、js、画像) を CDN にプッシュします。これにより、Web サーバーが処理しなければならない要求の数が減るため、必要な Web ロールの数が減ります = ネットワークが少なくなります。
ashx はどのように応答を返しますか? つまり、html、xml、または json を送信していますか? 個人的には、必要なネットワーク帯域幅が少なくなり、おそらくサーバー側の処理が少なくなる = メモリとネットワークが少なくなるため、JSON を返すようにします。
非同期 API を使用して azure ストレージにアクセスします (これは IO 完了ポートを使用して iis スレッドを解放し、azure ストレージが戻るまでより多くの要求を処理します = CPU のスケーリングを有効にします)
tijmenvdk は、書き込みにキューを使用することについて既に言及しています。質問のリストは変わりますか?そうでない場合は、それらをキャッシュして、アプリが起動時に 1 回、最終的なラップアップのためにクライアントごとに 1 回だけテーブル ストレージから読み取る必要があるようにします = メモリを犠牲にしてネットワークと CPU を節約します。
これらのヒントはすべて、単一サーバーまたは Web ファーム環境の通常の Web アプリケーションにも同様に適用できます。
私が言いたいのは、測定できないものは改善できないということであり、測定、改善、およびコストはすべて密接に関係しているということです。動的スケーリングはコストを削減しますが、基本的に、アプリケーションが測定されておらず、リソースの使用が最適化されていない場合、必要なインスタンスの数を尋ねることは無意味です。