容量計画と過負荷からの回復

このページの目次

容量計画では、平常時の遅延、突発滞留の回復時間、失敗と再試行の追加仕事を同時に考えます。平均到着が平均能力より小さいことは出発点にすぎません。

滞留を解消するのは差分の余力

決定論的な流体近似では、仕事を連続に分割できる量として扱います。総処理能力 、流入仕事率 なら:

既存滞留 、以後の一定到着 なら解消時間は 。 は新規到着がない場合だけです。全滞留の消失時間と、現在の末尾にいる一要求のFCFS待ち時間は違います。後から来る要求は通常その要求の後ろに並びます。

平常60/s、能力100/s、120/sの突発が30 s続くと600件増えます。平常へ戻ると余力40/sなので追加15 sで解消。能力70/sなら同じ突発で1500件、余力10/sなので150 s必要です。

再試行が余力を消費する

最大 回、各試行が独立に固定確率 で失敗し、失敗後だけ次を試すなら:

は無限試行の場合だけです。現実の障害は相関し、失敗率も負荷で変わるので、固定 は仕事量近似です。再試行の遅延は到着の時間構造を変え、期待増幅率は実際の逐時試行列ではありません。

実験は から240 sまで観測します。滞留は試行仕事量で数え、到着率には期待再試行増幅を既に含めています。

図を準備しています
容量計画と過負荷からの回復 · 実験

決定論的流体近似。元の到着は平常60/s、20–50 sは120/s。最大3試行、独立で一定の失敗確率pから1+p+p²倍の即時負荷とします。バックオフや拒否はなく、実際の再試行過程や確率的テールモデルではありません。

実験は最大3試行です。再試行なしでは20–50 sの突発を65 sに解消します。能力100/s、 なら増幅1.39倍、平常83.4試行/s、突発滞留2004件で、突発終了から約120.72 s必要です。 では平常105/sとなり余力がなく、突発後も滞留が増えます。

理論を容量レビューにする

  1. 業務単位と成功条件を定義します。元要求、試行、受付、成功、取消、期限切れを分け、速いエラーを有効仕事に数えません。
  2. 制約資源のサービス需要と、種別ごとの平均、変動、裾を測ります。CPU、接続、ロック、遠隔割当が別々の段を制限し得ます。
  3. 適切なモデルで定常待ちを見積もり、現実の需要に合う開放・閉鎖負荷試験で目標を確かめます。モデル誤差と測定不確実性も余力に含めます。
  4. 突発、下流低速化、インスタンス故障、再試行を再生し、回復中の年齢、拒否、成功遅延と解消時間を見ます。
  5. 受付、テナント隔離、古い仕事、再試行予算、増設の有効化遅延を定義します。能力が実際に増えるまで滞留は生じ続けます。

AWSの滞留記事は隔離と回復の経験を、Google SREは仕事の費用差と資源信号を扱います。すべてのシステムに使える70%や80%の利用率閾値は導けません。

制御理論とメッセージングへ

待ち行列理論は流量と待ちを、制御理論は観測から操作を変える方法を扱います。列の年齢、滞留、利用率を帰還へ使えますが、標本化、平滑化、増設遅延、飽和も回復に影響します。計算機システムの制御で、本章の仕事モデルを動的な判断へ接続できます。

メッセージには永続化、重複、分割、再生もあり、FIFO図だけでは代替できません。メッセージの意味論と Kafkaアーキテクチャへ進みます。発展には更新過程、優先度列、閉鎖網の平均値解析、ネットワーク計算、重交通極限、状態依存処理があります。本シリーズは待ち行列理論全体の網羅を主張しません。

確認問題

  1. 滞留10000件、能力1000/s、新規900/sなら、なぜ解消は10 sでなく100 sですか。
考え方

毎秒1000件完了して900件増えるので、正味100件しか減りません。10000/100=100 s。到着停止時だけ10 sです。能力、流量、費用が変われば仕事量を再積分します。

  1. 列を大きくするか消費者を増やせば、必ず過負荷を解消できますか。
考え方

どちらも無条件には保証しません。列の拡大は待つ場所を増やすだけで、消費者追加は本当の制約能力を増やす必要があります。下流が飽和していれば競合を強める場合もあります。資源と業務締切を特定し、故障・回復実験で確認します。