ロードバランスされたシステムの経済学とErlang C
サーバーあたりの利用率を一定に保ちながら、ロードバランスされたシステムにおけるサーバーの数を増やすことは、平均レイテンシを減少させ、テールパーセンタイルを改善します。負荷がサーバーの数に対して線形に増加するシステムでは、システムがスケールするにつれて待ち行列に費やされる時間は漸近的にゼロに近づきます。つまり、より大きなクラスターは、同じ利用率レベルでより優れたレイテンシを提供します。
M/M/c 待ち行列モデルにおけるレイテンシの挙動
ポアソン到着プロセス、指数分布に従うサービス時間、および c 台のバックエンドサーバーを特徴とする M/M/c 待ち行列モデルでは、スケールとレイテンシの関係は非線形です。無限の待ち行列を持つロードバランサーが、一度に1つのリクエストを処理できる c 台のサーバーにトラフィックを分散する場合、サーバーあたりの負荷が一定(例:利用率80%)であっても、c が増加するにつれてクライアントが観測する平均リクエスト時間は減少します。
この挙動は、到着したリクエストが即座に処理されるのではなく、待ち行列に並ばなければならない確率を計算する Erlang C 公式によって説明されます。サーバーの数が増えるにつれて、リクエストが待ち行列に入る確率は大幅に低下します:
- 小規模: 特定の利用率において、サーバーの数が少ないシステムは、リクエストが待ち行列に到達する確率が高くなります。
- 大規模: 同じ利用率において、サーバーの数が多いシステムは、トラフィックのバーストを吸収する効率が高く、その結果、待ち行列が発生する確率が低くなります。
平均レイテンシとテールレイテンシへの影響
平均レイテンシはしばしば議論の分かれる指標ですが、モンテカルロ・シミュレーションは、このレイテンシの改善が平均に限定されないことを示しています。中央値 (p50) および高いパーセンタイル (p99 および p99.9) も、サーバーの数が増えるにつれて同様の下落傾向に従います。これは、サーバーの数をスケールさせることで、隠れたパフォーマンスの退行なしに、テールレイテンシを効果的に削減できることを示しています。
クラウドサービスにおける経済的影響
サーバーの数をスケールさせることは、明確な経済的利点をもたらします。オペレーターは、同じリソース利用率でより低いレイテンシを実現するか、あるいは、同じレイテンシ目標に対してより高い利用率を実現することができます。これらのレイテンシの利得は、多くの場合、比較的控えめな c の値において発生するため、この利点は、ハイパースケールなインフラストラクチャだけでなく、中小規模のサービスにも適用可能です。
\n## モデルの仮定と制約
M/M/c モデルは、実際の運用環境と必ずしも一致しない特定の仮定に基づいています:
- 到着プロセス: ポアソン到着プロセスを想定しています。
- サービス時間: 指数分布に従うサービス時間を想定しています。実際のサービスでは、対数正規分布に従うサービス時間分布を示すことが多いですが、スケールによるレイテンシ改善の一般的な傾向は通常維持されます。
- 安定性の要件: システムが安定し、無限の待ち行列を回避するためには、平均到着率 ($λ$) と、サーバーの数 ($c$) と平均サービス率 ($μ$) の積の比が 1 未満である必要があります ($λ/cμ < 1$)。到着率がシステムの総処理能力を超えると、レイテンシは無限に増大します。