5

Web サイトのスケーラビリティとパフォーマンスの問題にうまく対処するために、どのような方法と技術を使用しましたか? 私は ASP.NET Web 開発者であり、SQL クラスタリングを使用した WCF を使用した .NET リモート処理を調査しており、他にどのようなアプローチが存在するか (「クラウド」など) に興味があります。どのような場合に、さまざまなアプローチを適用しますか (たとえば、おおよそ x 人の「アクティブな」ユーザーに対する方法 a)。

私が言いたいことの例、myspace のケース スタディ: http://highscalability.com/myspace-architecture

4

3 に答える 3

15

これは非常に幅広い質問であり、答えるのが難しいですが、いくつかの一般的な提案をしようと思います.

1 - 重大な過ちを犯していない限り、かなりの量のトラフィック (1 か月あたり 100 万ページ ビュー以上) に到達するまでは、パフォーマンスやスケールについて心配する必要はないでしょう。

2 - 最初の最大のパフォーマンスの問題は、他の国からのページの読み込み時間である可能性があります。Gomez Instance Site Testを試して、世界中のページ読み込み時間を確認し、YSlow を最適化のガイドとして使用してください。

3 - パフォーマンスの問題が発生し始めた場合、最初はデータベースの作業が原因である可能性が最も高いです。SQL Server Profiler を使用して SQL トラフィックを調べ、実行時間の長いクエリを探して最適化を試みます。また、 を使用dm_db_missing_index_detailsして、追加する必要があるインデックスを探します。

4 - Web サーバーがパフォーマンスのボトルネックになり始めた場合は、プロファイラー (ANTS プロファイラーなど) を使用して、Web ページのコードを最適化する方法を探します。

5 - Web サーバーが十分に最適化されていても、まだ過熱している場合は、キャッシュの機会を探しますが、単純に Web サーバーを追加する必要があるでしょう。

6 - データベースが十分に最適化されていても、まだ稼働率が高すぎる場合は、分散キャッシュ システムの追加を検討してください。これは、1 か月のページ ビューが 1,000 万回を超えるまで発生しないでしょう。

7 - 分散キャッシュを使用してもデータベースが過負荷になり始めている場合は、シャーディング アーキテクチャを検討してください。1 か月あたりのページ ビューが 1 億を超えるまで、これはおそらく起こらないでしょう。

于 2009-01-11T23:11:39.607 に答える
8

私は、数百万/月/ヒットを取得するいくつかのサイトに取り組んできました。以下にいくつかの基本事項を示します。

  1. キャッシュ、キャッシュ、キャッシュ。キャッシングは、Web サーバーとデータベースの負荷を軽減する最も簡単で効果的な方法の 1 つです。ページ コンテンツ、クエリ、高価な計算など、I/O バウンドのあらゆるものをキャッシュします。Memcache は非常にシンプルで効果的です。
  2. 上限に達したら、複数のサーバーを使用します。複数の Web サーバーと複数のデータベース サーバーを使用できます (レプリケーションあり)。
  3. ウェブサーバーへのリクエストの全体的な数を減らします。これには、Expires ヘッダーを使用した JS、CSS、および画像のキャッシュが必要です。静的コンテンツを CDN に移動することもできます。これにより、ユーザー エクスペリエンスが高速化されます。
  4. 測定とベンチマーク。運用マシンで Nagios を実行し、dev/qa サーバーで負荷テストを行います。サーバーがいつ発火するかを知って、それを防ぐことができるようにする必要があります。

Building Scalable Websitesを読むことをお勧めします。これは Flickr エンジニアの 1 人によって書かれたもので、非常に参考になります。

スケーラビリティに関する私のブログ投稿もチェックしてください。複数の言語とプラットフォームでのスケーリングに関するプレゼンテーションへのリンクがたくさんあります

于 2009-01-11T23:32:50.717 に答える
1

MS からの速度があり、 MEMCacheには現在 .NET へのポートとindeXus.Netへのポートがあります。

于 2009-01-11T20:48:42.127 に答える