当社は今週、プライムタイムのテレビ番組に出演する予定であり、当社のウェブサイトには一度に約20万人の訪問者が期待できると言われています。
通常、1日あたり約100件の訪問しか得られないため、これだけのトラフィックを処理できるかどうかはわかりません。私たちはによってホストされてい1and1.co.uk
ます。
サイトに障害が発生するのを防ぐための予防策はありますか?
当社は今週、プライムタイムのテレビ番組に出演する予定であり、当社のウェブサイトには一度に約20万人の訪問者が期待できると言われています。
通常、1日あたり約100件の訪問しか得られないため、これだけのトラフィックを処理できるかどうかはわかりません。私たちはによってホストされてい1and1.co.uk
ます。
サイトに障害が発生するのを防ぐための予防策はありますか?
回答:
トラフィックの多い期間中、サーバーはWebサイトへの訪問者によるすべてのリクエストを処理できる必要があります。ただし、サーバーが処理する同時接続にはいくつかの制限があります。そのため、できるだけ早くページリクエストを処理するのが最善です。
これらの状況で考慮すべきいくつかの提案があります。
アプリケーションレベルの改善:
1. HTTPリクエストを最小化して、ページの読み込み時間を短縮します。
a)すべてのJSファイルを1つの結合されたJSファイルにまとめ、すべてのCSSファイルを1つの結合されたCSSファイルにまとめます。
b)JSおよびCSSファイルを縮小して、ファイルサイズを縮小し、ダウンロードを高速化します。
c)CSSスプライトを使用する-ほとんどまたはすべての画像をスプライトに結合すると、複数の画像リクエストが1つになります。次に、background-image CSSプロパティを使用して、必要な画像のセクションを表示します。
d)遅延読み込みでイメージのダウンロードを遅らせます。これは、http要求を減らすのに役立ちます。
2.より多くの訪問が予想される軽量ページを準備します。
a)可能な限り画像やフラッシュなどの装飾的な要素を除外します。サイトナビゲーションとクロムで画像の代わりにテキストを使用し、ほとんどのコンテンツをHTMLに入れます。
b)動的なページではなく静的なHTMLページを使用します。後者はサーバーにより多くの負荷をかけます。サーバーの負荷を減らすために、動的ページの静的出力をキャッシュすることもできます。
サーバーレベルの改善:
1.ホスティングプロバイダーに相談して、サーバーのタイムアウト値を減らします(低すぎてはいけません)。
タイムアウトが短い場合、接続はすぐに解放されるため、サーバーはより多くの接続を処理できます。
2. CloudFlareなどのサードパーティサービスを使用して、静的データのキャッシュを行い、悪意のあるユーザーやDDOSなどの攻撃からWebサイトを保護します。
3.サーバーハードウェアのアップグレード-必要に応じて、物理メモリと仮想メモリをアップグレードし、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しかありません(2 GBを超えると驚くでしょう)。
1and1を廃止したとき、スケーラブルなホスティングプロバイダー(この場合はAmazon Web Services)を使用し、以前はできなかったいくつかのことを行いました
AWSは町で唯一のゲーム(Azure、Rackspaceなど)ではありませんが、1and1があなたの需要に合わせて拡張できることを確認してください。
私の個人的な経験から、最高のVPSでも限界があることを知っています。私は本当の素人のここに行きます。
スポーツWebサイトの1つがVPSでホストされていました。パキスタンとインドの試合中、70,000件以上のヒットがありました。Inmotinghosting VPSには4GBのRAMと2.GHzの2 GHz処理、1TBの帯域幅、SSDストレージ、その他の付属品が搭載されていました。Cloudflareの有料版も有効にしました。
試合のちょうど途中で、ウェブサイトはダウンしました。試合中にライブになることはなく、潜在的に70,000人以上の訪問者を失いました。後で帯域幅が消費され、ソースホストが機能していなければ、CDNはほとんど役に立たないことがわかりました。
レッスン:VPSを取得してCloudflareのようなCNDにチューニングするとともに、ページサイズを最小化します。小さいほど良い。トラフィックを処理する際に非常に便利なページキャッシングとコードミニフィケーションを利用できます。
「一度にすべて」を十分に定義していない。30分で200,000人のユニークビジターを見ているとします。これは1秒あたり111リクエストであり、クリックして他のページを開くビジターを考慮していません(これは必要ですか?)。
私が最初にやることは、同じ量のトラフィックを処理する人々のGoogleストーリーです。多くの人が自分の経験についてブログに書いて、他の人を助けます。共有ホスティングで誰かがそれをやっているという話を見つけるのは非常に難しいことに気付くでしょう、そしてそれには理由があります。手始めに、視聴者に最も近いデータセンターを使用して、Digital OceanやAmazon Web Servicesなどのソリューションを検討してください。そして、無料のアカウントであっても、すべての静的リソースをCloudFlareにオフロードすることは素晴らしいアイデアです。
それとは別に、動的であると仮定して、ページの上部と下部にタイミングスクリプトを追加して、コードをテストします。数字に関する私の仮定が正しいと仮定すると、許容可能なパフォーマンスを維持するために、10ミリ秒以内に各ページを提供できる必要があります。デフォルトですべてのリクエストをSSL経由で処理している場合、ストームが通過する間、数日間それを無効にします。
また、200,000は非常に恐ろしい音に聞こえますが、あまり怖がる必要はないことを覚えておいてください(多少はあるべきですが)。たとえば、ペーパーマガジンがキムカーダシアンのNSFW写真を発行したとき、この記事(SFW)によると、負荷を処理するのに4台の中型のWebサーバーとAmazon ELBだけが必要でした。現在の設定で処理できるとは思いませんが、48個のコアがそれぞれ独自の小型原子力発電機で駆動される16台のWebサーバーは必ずしも必要ではありません。
この古いが非常に良い質問を知っていて、数年前に私が主題について良い情報を持っていたなら...
テレビネットワークに掲載される(学校活動に関連する)サイトが時々あります。非常に厳しい予算で運営しているため、「負荷分散」がソリューションです。VPSボックスは最近非常に安くなっている可能性があり、2〜3個のコンテンツをミラーリングまたは複製するだけです。
この記事を見て、「ラウンドロビン」について読んでください。
負荷テストの詳細については、こちらをご覧ください。
スパイクの処理を始めたとき、コンテンツを2〜3個のVPSボックスに配置し、NSをレジストラ設定に配置しました。
最適なのは、マルチクラスター化された専用サーバーを使用して問題を解決することです。
ウェブサイトの書き換え、プロバイダーの切り替え、コンテンツのCDNへの移行を1週間以内に行ってください。
他の回答から気付いたかもしれませんが、これらはトラフィックの大幅な増加に備えてサイトを準備するために必要な最小限のものです。現在1and1.co.ukで実行している場合、おそらくネットワークエンジニア、DBA、プログラマー、フロントエンドオプティマイザーの強力なチームはありません。
それは起こりそうにないですよね?
ショッピングカートを実行するか、静的コンテンツを使用して実装できるかどうか、Webサイトで何をするかについては説明していません。後者の場合、サイト全体を静的ファイルにスクレイピングし、通常のサイトの代わりに公開すると、津波を生き延びることができます(最初に現在のバージョンをバックアップしてください)。
また、1and1と話す必要があります(クレジットカードを手に入れて)。