CDNでは、急激な負荷増加時にインフラストラクチャが高いパフォーマンスと回復力を維持するのに役立つ、新しく革新的な方法を継続的に開発している。 これにはしばしば我々が使う既存の技術の最適化を探ることが含まれる。 さらに、新しいアプローチの検証は、新しい変更が本番環境に期待されるプラスの影響を与えることを保証するため、このプロセスの重要な部分である。
コンテンツが普及すると、データセンター/ Point of Presence(POP)内の複数のサーバーに複製する。 これにより、負荷分散を改善し、そのような急増に対処することができ、サーバーの過負荷のリスクを減らすことができる。 このレプリケーションメカニズムは「ホットファイル」と呼ばれ、人気のあるコンテンツは「ホットファイル」と呼ばれる。 我々は最近、トラフィックの急増に対してより弾力性を持たせることにより、従来のホットファイリングを改善する適応的負荷分散(ALB)最適化を開発した。 特に、静的なしきい値に依存するのではなく、サーバ負荷を測定することで、必要なレプリケーションの量を動的に決定する。 これによりPoP内のすべてのサーバーに負荷が均等に分散され、PoP、つまりCDNの全体的なリクエスト処理能力が増加する。 アダプティブロードバランシングシステムの評価に関する前回の記事では、この最適化のメカニズムについて詳しく説明している。
本記事では、この最適化が生産に与えるプラスの影響を検証する。 まず、影響を測定するために使用した指標を定義する。 次に、これらの各指標に対する最適化の影響を例を通して示す。 最後に、これがデプロイされたすべてのPoPにおける最適化の集約的な影響を示す。 要約すると、事前に定義されたしきい値を超えてサーバが過剰な負荷を受けた合計時間が少なくとも70%減少したが、ほとんどすべてのPOPでこのメトリックが改善されたことがわかった。 この最適化は、すべてのカスタマートラフィックに対してグローバルにイネーブルになっている。
メトリックを定義する
この新しい最適化が実稼働環境に与える影響を評価するために、次の3つの指標を定義し、監視した。
- サーバの傾き: PoP内のすべてのサーバの負荷の中央値に対するサーバの負荷の比率。
- [ホットファイルの数]:ホット・ファイル・メカニズムによって複製されたファイルの任意の時点の数 アダプティブロードバランシングはホットファイルの数を増やすことが期待され、ホットフィルは負荷分散の基礎となるメカニズムである。
- タイムサーバがターゲットの歪みを超える時間:このメトリックは、アダプティブロードバランシングの有効性を評価する。 ターゲットの歪みのしきい値を特定の値に設定すると、ほとんどのサーバーの歪みが通常その値よりも小さいことを確認したい。
監視対象メトリックに対する最適化の影響
目標の歪みを達成する
下の図は、POPでのサーバの負荷分散の2つのスナップショットを示している。 左側(アダプティブロードバランシングなし)では、負荷がPoPの中央値の1.8倍を超えて、スキューネスターゲット(赤いボックス)を超えているサーバがいくつか見られる。 右側(アダプティブロードバランシングを使用)では、サーバ間でより大きなバランスが見られ、中央値の1.8倍を超える負荷を示すサーバは存在しない。
アダプティブロードバランシングを使用した負荷分散の変更。 サーバの過負荷が減少していることに気付く。
ホットファイルの数と負荷分散
次に、ホットファイルの数がどのように影響を受けたか、および各サーバの負荷に対応する変更について検討した。 下のプロットは、POPでALBを有効にしたときにホットファイルの数が増加したことを示している。 この動作は、この機構が負荷の高いサーバからファイルがオフロードされる可能性を選択的に高めるために期待された。
基本的に、ホットファイリングとALBは、特定のファイルを処理するサーバーの数を増やすことで、個々のサーバーの負荷を軽減する。 これにより、各サーバのストレージ負荷が増加する。 しかし、オフロードを必要とする外れ値のサーバーからのみ選択されるため、任意の時点でレプリケートされるように選択された追加ファイルはPoPから提供されるファイルの総数と比較して相対的に低い。 ほとんどの場合、使用される追加のキャッシュスペースは総ディスクスペースに比べて非常に小さい。 したがって、トレードオフは価値があるが、識別し、認識することが重要である。 実装では、この最適化によってキャッシュの使用が悪影響を受けないことを検証するための健全性チェックを組み込んだ。
ホットファイルの数。 この数は、アダプティブロードバランシングがオンになっている場合(赤いマーカー)、外れ値のサーバのオフロードが試行されるため増加する。
2番目のプロットは、各サーバがそのPoPで同じ時間枠に配信したトラフィックの量を示している。 アダプティブロードバランシングを有効にすると(赤い破線)、サーバ間の負荷がよりバランスされることが観察された。 これにより、サーバは着信トラフィックに対してより復元力があり、サーバの過負荷のリスクを軽減した。
2004年5月2日から5月5日までの間のPOPでの負荷分散(Mbps)。 アダプティブロードバランシングをオンにすると、より多くのサーバが中央値に近いトラフィックを配信するようになり、分散がよりスムーズになる。 これにより、サーバが新しいトラフィックで過負荷になるリスクを軽減することができる。
目標の歪みを超えて費やされた時間
ここでは,PoPを目標歪度1.6倍を維持するように設定した実験を検討した。 下の図では、実験期間における「サーバスキューネス」の分布をオレンジの線で示している。 この分布をベースライン期間のそれぞれの分布である青い線(アダプティブロードバランシングなし)と比較すると、負荷は中央値に向かってシフトしている。 注目すべきは、分布の「尾」も大幅に減少し、99パーセンタイルは2.12から1.52に減少し、目標の歪度を下回った。
アダプティブロードバランシングは、サーバの最大負荷を減らし、サーバの負荷を中央値に近づける。
ディストリビューション内の「テール」を減らすことが最適化の主な目標である。なぜなら、そのテール内のサーバ、つまり負荷が最も高いサーバは、新しいトラフィックスパイクで過負荷になるリスクが高くなるからである。 この削減量をさらに定量化するために、アダプティブロードバランシングの有無にかかわらず、実験期間中にサーバがターゲットを介してトラフィックを配信した分数も測定した。
アダプティブロードバランシングは、サーバがターゲットしきい値を超える負荷を配信するために費やす時間を短縮する。
この場合、このPoPでは、ターゲットの歪みを超えて費やされる時間が88%減少したことが観察された。 これは、アダプティブロードバランシングが目的の値の周りの負荷分布の歪みを維持できることを示す良い指標である。
グローバル展開の結果
選択した少数のPoPで最適化をテストし、測定されたメトリックで良好な結果を確認した後、時間の経過に伴う集約された影響を定量化するために、システムをすべてのPoPに展開した。 前述のように、PoP内のサーバが、指定されたターゲットの偏りを超えるトラフィックを配信するために費やした集合的な分数を測定した(PoP内のサーバ負荷中央値1.8倍に設定されている)。 次のプロットは、75のPOPに対してそのしきい値を超えてサーバが費やした分数の2つの分布を示している。 青色の線はベースラインデータの4日分、オレンジ色の線はアダプティブロードバランシングデータの4日分に相当する。 全体的な分布の左へのシフトは、アダプティブロードバランシングを実行しているPOP内のサーバがしきい値を超える時間をより短くしたことを示している。
すべてのPoPについて、指定したしきい値(中央値1.8 *)を超える負荷を4日間にサーバが配信するために費やした時間の総計(分)。 アダプティブ・ロード・バランシングでは、分布は左にシフトされ、このメカニズムがサーバ負荷を中央値からのターゲット偏差よりも長期間維持することを示している。
個々のPoPへの影響をさらに理解するために、各PoPについてこのメトリックの変化率も記録した。 その結果、POPの半分はサーバの総時間が目標の歪みを超えて70~95%短縮され、ほぼすべてのPOPで閾値を超える時間が短縮されたことが示された。
CDNのパフォーマンスと信頼性を継続的に改善するための継続的な取り組みにおいて、我々は最近、PoP内でトラフィックをロードバランシングする方法で最適化を展開し、評価した。 この最適化は、指定されたしきい値を超えてロードされたサーバを他のPoPと比較して識別し、それらのサーバをオフロードする。特に、新しいトラフィックスパイクが発生した場合のパフォーマンスへの影響のリスクを軽減する。 実動からの結果は,以前のシミュレーション結果と一致していた有意な改善を示し,サーバ負荷の分布を所望の歪み内に維持するための最適化の効率を示した。 その結果、すべての顧客トラフィックに対してこの最適化をグローバルに有効にした。
このメカニズムの実装と展開に取り組んでくれたAngela Chenに特に感謝する。 また、Scott Yeager、Derek Shiell、Marcel Flores、Anant Shah、Reed Morrisonの一般的な議論を支援してくれたほか、Colin Rasor、Richard Rymer、Olexandr Rybakのデータ収集と可視化の支援にも感謝している。