大規模なサイトはどのようにスケールアップし、大量のトラフィックに最適化しますか?[閉まっている]


8

FacebookやTwitterなどのサイトは、大量のトラフィックのためにサイトをどのように最適化しますか。最高のサーバーを入手するために多額の費用を費やす以外に、大量のトラフィックに対応するためにコードで何を最適化できますか?

静的HTMLへのページのキャッシュについて読みましたが、ページが絶えず更新されるソーシャルネットワーキングサイトには実用的ではありません。


平均で1秒あたり10000のアクセスがある場合、1秒のキャッシュでも9999のスクリプト処理を節約できます。

あなたは(私はSOの所有者によるオリジナルのポストを見つけることができません)あまりにもこれに興味があるかもしれない:highscalability.com/blog/2009/8/5/...

これは、facebookのエンジニアが拡大するために行ったいくつかのことを説明するビデオとプレゼンテーションです。
aufather

回答:


14

Facebookは負荷の特に極端な例ですが、一般的にトラフィックの多いサイトです。

  1. コンテンツ配信ネットワーク(CDN)を使用して、静的アセット(CSSおよびJavaScript)とメディア(画像、ビデオなど)を配布します。
  2. データベースの負荷を軽減するために、可能な場合は常にMemcachedなどのメモリ内キャッシュを使用してください。
  3. Webサーバーのプールにトラフィックを分散するロードバランサーを使用する
  4. 生成されたHTMLフラグメント(プロファイルページの一部など)をキャッシュし、完全な応答を生成するときにそれらを含めます。

1
+1自分ではもっと上手く言えなかったでしょう。CDNネットワークの場合、静的コンテンツを提供するために非常にうまく機能することがわかったAmazon S3 + Cloudfrontを保証できます。メモリキャッシュについては、Redisもチェックしてください。
Martin Wickman、

なぜFacebookは悪い例ですか?

ああ、悪くないです。私が言っているのは、ほとんどのウェブサイトがFacebookやGoogleのレベルの負荷を経験することは決してないということです。
ビル


1

コンテンツ配信ネットワーク

Facebookは、写真やビデオの配信に静的コンテンツ配信ネットワークを使用しています。Facebookの画像のソースを確認すると、fbcdn.netのようなものが表示されます。


1
Facebookのコンテキストで、CDNとは何かを少なくとも説明できますか?例えば、リンクなどのblog.facebook.com/blog.php?post=2406207130
Kanini

@Kaniniあなたはcheck-できるen.wikipedia.org/wiki/Content_delivery_network
Gulshanの

クラウドコンピューティングとCDNの違いは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.