オンラインの最初の日:サイトを殺さない方法


14

たくさんのデータ(大きな画像など)を備えたこの派手な新しいサイトがあり、それをオンラインにしようとしているとします。最初の数日間に「あまりにも」宣伝をすると、サイトはリクエストに圧倒されます。

このリスクを軽減するにはどうすればよいですか?

私は考えました

  • SOやSFのように、徐々に公開されます。「プライベート」ベータ、パブリックベータ、パブリック
  • Xを許可 接続 セッションを同時に行うため、接続ユーザーはサイトの操作感が良好であり、他のユーザーにはすてきな謝罪メッセージが表示されます

できません:

  • 最初の数日後、サイトのトラフィックが大幅に少なくなるため、サーバーを追加購入します。

6
私の15年間の開発およびリリースサイト。これは誰もが考えていることです...新しいサイトを私たちとブームに置いてください!ほとんど起こりません。通常は、予想よりも少ない逆になります。ただし、ユーザーが多すぎると問題が発生する可能性があります;)
チャドグラント

1
私はその問題を持っていて、そのないA verryにpleasentのスポットと...
ガブリエル・ソロモン

回答:


11
  1. できる限りキャッシュします。ユーザーが静的バージョンを取得できるように、動的に作成されるページはすべてキャッシュする必要があります。データベースを照会するページコンポーネントでもキャッシュする必要があります。
  2. Amazon S3などの外部サービスを使用して、画像やマルチメディアを提供してみてください(または、サイトが突然大量のトラフィックに見舞われた場合は、すぐに使用できるようにしてください)。

JeffとJoelのブログの人気により、SOFとSFにはすでに宣伝と需要が組み込まれているため、徐々にライブを開始することができます。彼らのようにほぼ保証されたユーザーベースを持っていない場合、徐々に稼働することは致命的かもしれません。

非アクティブが原因でセッションの終了を定義するのは難しいため、同時セッションによる制限を避けます。ユーザーが15分間離れて、ページをリロードしようとすると、エラーメッセージが表示されます-ユーザーを失っただけです。


私はセッションを意味していましたが、私の指はつながりを意味していました。修正しました。
マチュー2009

5

データモデルにどの程度の計画が組み込まれましたか?高価なソート、バイナリ列、または複雑な結合なしでクエリ量を増やすことができるスキーマを設計しましたか?データベースバックエンドを調整しましたか(持っていると仮定)?

「大きな画像」をどのように提供していますか?それを別のWebサーバープロセス、別のドメインに分割できますか?

システムの負荷テストを実施しましたか?ApacheBenchやSiegeなどのツールは非常に貴重です。

すべての設定はsvnにありますか?展開は自動化されていますか?アプリケーションを2番目のサーバーにロールアウトする必要がある場合は、それが嬉しいでしょう。


私は負荷テストに同意しました。私たちは厳しい締め切りにあったため、テストをスキップし、私たちの尻に戻って来たウェブサイトを持っていました。また、サイトの稼働中にサーバーの負荷を管理可能な状態にするためにいくつかの調整を行う必要がありました(4 CPUの専用サーバーでCPU負荷が200%に達しました)
Gabriel Solomon

1

招待システムは、サイトへのユーザーの取り込みを制御するための良い方法です。サイトが圧倒されないように、最初に一定数の招待を配ります。次に、各ユーザーにいくつかの招待状を送り、他のユーザーに回して、サイト上のユーザーの数を徐々に増やします。そうすれば、最初にサイトにアクセスする人が多くなりすぎず、トラフィックのピークが大きくなりません。

もちろん、欠点は、最初は招待を持たず、後で戻ってこないかもしれない多くのユーザーを避けるかもしれないということです。人々が使用することに非常に興奮している本当に良いサイトがない限り、これは悪い動きかもしれません。それは本当にサイトに依存します。加えて、招待システムを追加するには、実際には追加の開発時間が必要です。


1

立ち上げ前に、堅牢な監視インフラストラクチャが整っていることを確認します。判断の基礎となるデータが必要です。これは、サーバー全体のCPU負荷を測定し、負荷がボックス全体に均等に分散されていること、および何かが溶けた場合にそれがどれであるかを確認することを意味します。

問題がどこにあるかを知ることは、応答にかかる時間を劇的に短縮します。火事が起きた後、後で設定するつもりで、どんな種類の監視もせずに立ち上げるサイトが多すぎます。これは非常に間違っています。


1

Amazon S3などの静的コンテンツのサードパーティホスティングを検討することをお勧めします。アプリケーションによっては、Amazon EC2を使用して(私は流行語が嫌いなほど)一部をクラウド化する価値があるかもしれません。


0

一部のホスティングプロバイダーでは、最大容量のプライベートサーバーをしばらくテストし、試用期間後に適切な容量に落ち着くことができます。

DreamHostはその一例です:http ://www.dreamhost.com/hosting-vps.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.