成長するウェブサイトの負荷容量の増加

成長するウェブサイトの負荷容量の増加

私のウェブサイトは現在、専用ウェブサーバー(LiteSpeed を使用)と専用 MySQL データベースサーバーで実行されています。これはダウンロード ベースのサイトで、ストリーミングやダウンロードが可能なユーザー生成コンテンツが多数あり、数千のサムネイルと静的コンテンツもあります。

ウェブサーバーがトラフィック量を処理できなくなっている段階なので、ダウンロード可能なコンテンツの量が多いことを考慮して、容量を増やす最善の方法を検討しています。

私のホストは、すべてを 2 番目の Web サーバーにミラーリングし、DNS Made Easy を使用してそれらの間で負荷を分散するか、または 2 つの Web サーバーの前に独自のロード バランサー (ldirector を使用) を配置することを提案しています。

上記の方法が最善の選択肢であるかどうか、どなたかアドバイスをいただけませんか? DNS Made Easy や ldirector を使用した経験のある方はいらっしゃいますか?

何か助けていただければ幸いです。

答え1

まず第一に、前進する前にボトルネックがどこにあるのかを把握する必要があります。

ホストはすぐに新しいハードウェアを推奨しますが、多くの場合、ハードウェアの制限があることが明らかでない限り、新しいハードウェアによって大幅な改善が得られない可能性があります。

ハードウェアの追加は、賢く行わないと、効果は減少します。サーバーを 1 台から 2 台に増やすとリソースが 2 倍になりますが、同じ増加を得るには、2 台から 4 台、4 台から 8 台に増やす必要があります。

監視と測定

システムメトリック、ロード時間、その他のデータを監視していない場合は、まずそこから始めましょう。Muninやsystatなどの無料ツールは、サーバーソリューションに最適です。http://Browsermob.com よりそしてhttp://webpagetest.orgユーザー中心の指標を提供できます。

セグメントトラフィック

通常、複雑なメディア サイトを別のサーバーに直接移植することはあまり効果的ではありません。多くの場合、トラフィックをセグメント化することで、投資に対して優れた結果が得られます。

たとえば、非常に忙しいフラッシュ ゲーム サイト (1 日あたり数百万回のアクセス) を持つクライアントがいます。フラッシュ ゲームを Nginx を実行する安価なサーバーのプールにオフロードしました。これらのシステムは、1 か月あたり TB 単位のトラフィックを送信します。これらはエントリー レベルのボックスであり、提供されるのは静的コンテンツだけです。

コスト面では、これら 2 つのエントリ ボックスを合わせると、プライマリ サーバーよりも 20% 安くなります。容量は 4 倍以上向上しました。プライマリ サーバーをクローンして負荷分散しただけであれば、改善はせいぜい 1.5 ~ 1.8 倍だったと思います。

つまり、パフォーマンスの問題の本質を理解するために努力することで、後で多くの費用を節約できるのです。

DNSを簡単に

これは DNS ソリューションであり、実際には負荷分散には対応していません。ラウンドロビン DNS について話しているのかもしれません。この段階でこれが考慮された理由はよくわかりません。

Lディレクター

これは、LVS クラスター内のノードを管理するためのツールです。もう一度言いますが、この特定の項目がなぜ提案されたのかはわかりません。通常は、ロード バランサー (ハードウェアまたは Nginx/HA-Proxy のようなもの) を使用して、トラフィックを適切なバックエンド サーバーにルーティングします。

答え2

DNS ベースの負荷分散は、いくつかの理由から適切ではありません。

  1. サーバーへのアクセス方法を制御できますが、2 つのサーバー間でトラフィックを異なる方法または均等に割り当てることはできません。
  2. さらに重要なのは、この負荷分散方法ではサーバーの障害が認識されないことです。そのため、サーバーの 1 つに予期しない障害が発生した場合、トラフィックの一部が失われます。
  3. DNS キャッシュにより状況はさらに悪化します。

ldirector私は、や のようなよりスマートな負荷分散技術を使用することを好みますhaproxy。このタイプの負荷分散では、サーバーの仕様に応じて、いくつかの要素 (負荷、接続数など) を使用してトラフィックを分散できます。

もう一つ重要な点があります。サーバー上に MySQL DB とユーザー コンテンツがあるとおっしゃいました。2 つのサーバー間でトラフィックを分散する場合は、2 つのサーバー間に同期メカニズムが必要です。そうしないと、ユーザーが毎回異なるサーバーにアクセスするときに、常に同じデータが表示されるとは限りません。

関連情報