当社は今週、プライムタイムのテレビ番組に出演する予定であり、当社のウェブサイトには一度に約20万人の訪問者が期待できると言われています。
通常、1日あたりの訪問数は約100だけなので、これだけのトラフィックを処理できるかどうかはわかりません。ホストは1and1.co.uk
です。
サイトに障害が発生するのを防ぐための予防策はありますか?
トラフィックの多い期間中、サーバーはWebサイトへの訪問者によるすべてのリクエストを処理できる必要があります。ただし、サーバーが処理する同時接続にはいくつかの制限があります。そのため、できるだけ早くページリクエストを処理するのが最善です。
これらの状況で考慮すべきいくつかの提案があります。
アプリケーションレベルの改善:
1。HTTP要求を最小化してページの読み込み時間を短縮します。
a)すべてのJSファイルを1つの結合されたJSファイルに結合し、すべてのCSSファイルを1つの結合されたCSSファイルに結合します。
b)JSおよびCSSファイルを縮小して、ファイルサイズを縮小し、ダウンロードを高速化します。
c)CSSスプライトを使用する-画像のほとんどまたはすべてをSpriteに結合すると、複数の画像リクエストが1つになります。次に、background-image CSSプロパティを使用して、必要な画像のセクションを表示します。
d)遅延読み込みでイメージのダウンロードを遅らせます。これは、httpリクエストを減らすのに役立ちます。
2。より多くの訪問を期待している軽量ページを準備します:
a)可能な限り画像やフラッシュなどの装飾的な要素を除外します。サイトナビゲーションとクロムで画像の代わりにテキストを使用し、ほとんどのコンテンツをHTMLに入れます。
b)動的なHTMLページではなく静的なHTMLページを使用します。後者はサーバーにより多くの負荷をかけます。サーバーの負荷を減らすために、動的ページの静的出力をキャッシュすることもできます。
サーバーレベルの改善:
1。サーバーのタイムアウト値を減らすホスティングプロバイダーに相談してください(低すぎてはいけません)。
タイムアウトが短い場合、接続はすぐに解放されるため、サーバーはより多くの接続を処理できます。
2。サードパーティのサービスを使用する CloudFlareのように静的データのキャッシュに使用し、悪意のあるユーザーやDDOSのような攻撃からWebサイトを保護します。
。サーバーハードウェアのアップグレード-必要に応じて、物理メモリと仮想メモリをアップグレードし、I/Oとエントリプロセスの制限を増やします。あなたのホスティングプロバイダーはあなたをより良く助けることができるでしょう。
4。動的コードのキャッシュ-APCを使用してPHPオペコードをキャッシュします。
5。負荷分散-複数の負荷分散サーバーに負荷を分散します。
必要なすべてのアクションが実行されたら、今度はWebサイトが大量のトラフィックスパイクに対応できる状態になっているかどうかを確認します。
Loadimpact.comのような、シミュレートされたトラフィックで負荷テストを提供するサードパーティサービスがあります。この分析は、Webサイトが処理できる負荷と改善できる点を理解するのに役立ちます。
また、トラフィックスパイク期間中は、WebサイトバックアップcronジョブなどのCPU使用率の高い操作を避けます。
まず、Cloudflareをお勧めします。無料の基本アカウントを作成すると、ローカルデータセンター経由でトラフィックをルーティングして、サーバーホップの量を最小限に抑えることができます。 Cloudflareはコンテンツのキャッシュにも優れており、DDOS保護を備えています。
それ以外は、サービスレイヤーから脂肪を削除してみてください。コードのボトルネックになっている過度に肥大化したデータベースクエリや、単純化できるCPU集中型のロジックがないことを確認してください。
また、データベースクエリをキャッシュしようとします。クエリキャッシュの優れたオプションには、RedisまたはMemcacheがあります。コンパイルされていない言語を使用している場合、OpCachingも考慮事項の1つです。
ただし、おそらく最も重要なことは、静的コンテンツ(CSS、JS、画像)を可能な限り最適化することです。すべてのJavascriptを縮小し、可能であればすべてを1つのファイルに結合します。サイトに含まれる各ファイルは、エンドユーザーに到達するためにいくつかのサーバーホップを作成する必要があることに注意してください。
画像を圧縮することで節約できる帯域幅とロード時間を過小評価しないでください!
最後に、New Relicなどのツールを使用してパフォーマンスを監視することを検討してください。
幸運を祈ります!!
出典:Alexaによると、英国で12番目に人気のあるサイトの開発者の1人。
サイトの負荷テストを検討してください。 JMeter 、 The Grinder 、および Gatling などの無料ツールがあり、サイトへの多数の訪問者をシミュレートできます。
大量のトラフィックの影響を事前にテストすることで、行った調整が効果的であるかどうかを判断し、効果がない場合はさらに調整することができます。
1and1を使用している場合は、おそらく安価なホスティングを探しているでしょう。安価なホスティングは、1つのボックスの下ですべてを行う傾向があることを意味します。ホスティングの大きな問題は、すべてを同じボックスでホストする場合、リソースをサイトの重要な部分に分割することです。
また、1and1であるため、PleskやcPanelなどのコントロールパネルを使用している可能性が高くなります。つまり、リソースを奪い合う物の層が余分にあることを意味します。そして、あなたのcoの最後の爪?あなたは多くのリソースを持っていません。おそらく1つのCPU(または仮想CPU)とごくわずかのRAMがあります(2GBを超えると驚くでしょう)。
1and1を廃止したとき、スケーラブルなホスティングプロバイダー(この場合はAmazon Web Services)を使用し、以前はできなかったいくつかのことを行いました
AWSは町で唯一のゲーム(Azure、Rackspaceなど)ではありませんが、1and1があなたの需要に合わせて拡張できることを確認してください。
「一度に」を十分に定義していない。 30分で200,000人のユニークビジターを見ているとします。これは1秒あたり111リクエストであり、クリックスルーしてより多くのページを開くビジターを考慮していません(これは必要ですか?)。
私が最初にやることは、同じ量のトラフィックを処理する人々のGoogleストーリーです。多くの人が自分の経験についてブログに書いて、他の人を助けます。共有ホスティングで誰かがそれをやっているという話を見つけるのは非常に難しいことに気付くでしょう、そしてそれには理由があります。手始めに、視聴者に最も近いデータセンターを使用して、Digital OceanやAmazon Web Servicesなどのソリューションを検討してください。そして、無料のアカウントであっても、すべての静的リソースをCloudFlareにオフロードすることは素晴らしいアイデアです。
それとは別に、動的であると仮定して、ページの上部と下部にタイミングスクリプトを追加して、コードをテストします。数値に関する私の仮定が正しいと仮定すると、許容可能なパフォーマンスを維持するには、10ミリ秒以内に各ページを提供できる必要があります。デフォルトですべてのリクエストをSSL経由で処理している場合、ストームが通過する間、数日間それを無効にします。
また、200,000は非常に怖いように聞こえますが、too怖がる必要はないことを覚えておいてください(多少はあるべきですが)。たとえば、Paper誌がKim KardashianのNSFW写真を発行したとき、負荷を処理するのに4台の中型のWebサーバーとAmazon ELBだけが必要でした この記事による (SFW) 。現在の設定で処理できるとは思いませんが、48個のコアがそれぞれ独自の小型原子力発電機で駆動される16台のWebサーバーは必ずしも必要ではありません。
ISPに問い合わせて、帯域幅に上限があるかどうかを確認してください。予想されるトラフィック量に対して帯域幅が不十分な場合は、ホスティングプランをアップグレードします。訪問者に「帯域幅制限を超えました」というメッセージを表示したくない場合。
私の個人的な経験から、最高のVPSにも限界があることを知っています。私は本当の素人のここに行きます。
スポーツWebサイトの1つがVPSでホストされていました。パキスタンとインドの試合中、70,000件以上のヒットがありました。 Inmotinghosting VPSには4GB RAMと2.GHz処理、1TB帯域幅、SSDストレージ、およびその他の豪華なものがありました。 Cloudflareの有料版もアクティブ化されました。
試合の途中で、ウェブサイトはダウンしました。試合中にライブになることはなく、潜在的に70,000人以上の訪問者を失いました。帯域幅が消費され、ソースホストが機能していなければ、CDNはほとんど役に立たないことが後でわかりました。
レッスン:VPSを取得してCloudflareのようなCNDにチューニングするとともに、ページサイズを最小化します。小さいほど良い。トラフィックを処理する際に非常に便利なページキャッシングとコードミニフィケーションを利用できます。
1週間もかからずにWebサイトの書き換え、プロバイダーの切り替え、コンテンツのCDNへの移行をお楽しみください。
他の回答から気付いたかもしれませんが、これらは、トラフィックを大幅に増加させるためにサイトを準備するために必要な最小限のものです。現在1and1.co.ukで実行している場合、ネットワークエンジニア、DBA、プログラマー、フロントエンドオプティマイザーの強力なチームはおそらくいないでしょう。
それは起こりそうにないですよね?
ショッピングカートを実行するか、静的コンテンツを使用して実装できるかどうか、Webサイトで何をするかについては説明していません。後者の場合、サイト全体を静的ファイルにスクレイピングし、通常のサイトの代わりに公開すると、津波を生き延びます(最初に現在のバージョンをバックアップしてください)。
また、1and1と話す必要があります(クレジットカードを手に入れて)。
最適なのは、マルチクラスター化された専用サーバーを使用して問題を解決することです。