私が尋ねる理由は、スタックオーバーフローがスラッシュドットであり、Reddittedであるということです。
まず、これはWebサイトに電力を供給するサーバーにどのような影響を及ぼしますか?次に、システム管理者は、サイトを可能な限り最高の状態で稼働させ続けるために何ができるでしょうか。
残念ながら、これが発生する前に計画していなかった場合は、おそらく手遅れであり、ユーザーのエクスペリエンスが低下します。
スケーラビリティは、最初の差し迫った関心事です。1 か月あたりのヒット数よりも 1 秒あたりのヒット数が増える可能性があります。防御の第一線は、優れたプログラミングと設計です。データベースからデータをキャッシュするのではなく、リクエストごとに複数回リロードするなど、愚かなことをしていないことを確認してください。スパイクが発生する前に、かなり現実的な負荷テストを行って、ボトルネックがどこにあるかを確認する必要があります。
とてつもなく高いトラフィックの場合は、一部の動的ページを静的ページに切り替える機能を検討してください。
スケーリング可能なサーバー アーキテクチャも役立ちます。共有ホストは通常、スケーリングしません。通常、単一の専用マシンはスケーリングしません。Amazon の EC2 のようなものをホストに使用すると、特に最初からサーバーのクラスターを計画している場合に役立ちます (クラスターが単一のコンピューターであっても)。
次の大きな懸念事項はセキュリティです。あなたは突然、悪者にとってより大きな標的になります。適切なセキュリティ計画が整っていることを確認してください。これは常に持っておくべきものですが、使用頻度が高いほど重要になります。
最初に、実際に何週間も何千ドルもかけて、起こらないかもしれないことを計画する必要があるかどうかを尋ねます。もしそれが起こるなら、約 5 時間続きます。
最も簡単な解決策は、サインアップを許可するだけのページに切り替える良い方法を用意することです。人々はサインアップし、嵐が過ぎたときにメールを送ることができます.
より精巧なソリューションは、迅速にスケーリングできることに依存しています。それはまずソフトウェアの問題です(別のサーバーのデータベースに接続できますか、負荷分散を行うことができますか)。次に、ホスティング ソリューションは高速拡張をサポートする必要があります。Amazon EC2 が頭に浮かぶか、slicehost かもしれません。両方のサービスを使用すると、新しいインスタンスを簡単に開始し (「データベースを別のサーバーに移動しましょう」)、インスタンスを拡張できます (「db サーバーを 4GB RAM にアップグレードしましょう」)。
すべてのデータ (セッションを含む) を db に保持すると、複数のフロントエンド サーバーを簡単に作成できます。データベースの場合、私は通常、利用可能な最高のリソースを備えた単一のサーバーを試しますが、これは、db レプリケーションを使用したことがなく、少なくとも mysql では非常に困難であったためです。状況が改善された可能性があります。
他の回答が述べているように、負荷が上がります。
また、破壊行為に本当に興味があるだけの退屈な人々から、新しいユーザー/ブログのコメント/投票が殺到します。これは主に、完全に匿名のコメントを許可するブログの問題であり、恐ろしいものが入力されます。ブログプラットフォームには、それをブロックするのに十分なスパムフィルターが含まれている可能性がありますが、残りのドライブをクリーンアップするには、手動による介入が必要になることがよくあります。
確認が行われていなくてもユーザー名や電子メールアドレスを要求するなど、参入障壁が少しでもあると、破壊行為の量が大幅に減少します。
いくつかのアイデア(過去および現在のプロジェクトで使用したもの):(必要に応じて)パフォーマンスを向上させるために、サーバーの前にリバースプロキシのキャッシングイカを配置できます。もちろん、これは、セッションキーがなく、ページがやや静的で(つまり、1時間に1回程度しか変更されない)、パーソナライズされていない場合にのみ機能します。イカを使用すると、typo3のような肥大化した遅いCMSをブーストできるため、CMSの快適さを備えた静的Webサイトのパフォーマンスを実現できます。
大きなファイルをAmazonS3などの外部サービスにアウトソーシングして、サーバーの帯域幅を節約できます。
そして、あなたがいくらか(月に3桁)を使うことができるなら、あなたはコンテンツ配信ネットワークを使うこともできます。これにより、ユーザーのスケーリング、高可用性、低レイテンシが自動的に実現します。もちろん、ページはキャッシュ可能でなければならないので、セッションキーとパーソナライズされたページはノーノーです。注意深く設計され、CDNを念頭に置いて設計されている場合、少なくとも写真やビデオ、静的なものなどの一部のコンテンツをキャッシュできます。
アプリの設計者は、スケールアップ (より多くのコアとより高いパフォーマンスを備えたより大きなマシン) やスケールアウト (複数のシステムにワークロードを分散する) について考える必要があります。IT 担当者は、それをサポートする最善の方法を考え出す必要があります。ネットワークは最初に目にするものです。明らかにすべてがその上に乗っているからです。境界から始めると、これは通常、ネットワーク ロード バランサーと冗長ルーターが複数のプロバイダーによって提供されることを意味します。また、キャッシュフライなどの地理的キャッシング サービスやアプリも検討できます。
ボトルネックをできるだけ減らしたいと考えています。また、必要に応じてあまり手間をかけずにスケールアウトできるように環境を設計することも必要です。事前に設計作業を行うと、掘り下げられたときの頭痛の種が少なくなります。