Interactive

USL(普遍スケーラビリティ則)可視化

「ノードを足すほど速くなる」が途中で嘘になる地点を、数で言えるようにします。曲線と頂点タブでは競合σと一貫性κを動かし、C(N)=N/(1+σ(N−1)+κN(N−1))の曲線と頂点N*=√((1−σ)/κ)がどう動くかを確認できます。実測からσ・κを推定タブでは、 測定したスループットに直線を当てはめて係数を逆算し、まだ測っていない領域の頂点を予測します。

シナリオ

記事が計算している例。N* = √(0.97/0.0001) = √9700 ≒ 98.5 ノードで頂点に達する。

最適並列度 N*

98.5

√((1−0.03)/1.0e-4)

実際に置く整数台数

98

99台との差は0.4 ppm=実質同じ

頂点での相対容量

20.2×

アムダール上限は 33.3×

頂点の99%以上を保てるのは N = 79123(幅は N* の 45%)。 頂点は2次的に平坦なので、N* ちょうどを狙うよりこの範囲に入っているかを見る方が実務的です。

0102030175150225300C(N)並列度 NN*=98.5
USLアムダール(κ=0)線形(理想)頂点 N*
1(基準の仕事)
1.00
σ(N−1)(競合・1次)
2.22
κN(N−1)(一貫性・2次)
0.56

分母の合計 3.77 に対し C(75) = 19.87 まだ1次の競合項が支配的。Nを増やすと2次項がいずれ追い越す。

USLは定常状態の平均スループットのモデルです。テール遅延やバースト挙動は扱えないので、そちらは待ち行列理論やパーセンタイル統計の領域になります。

ここが分かる

  • κが少しでも正なら、曲線は必ず頂点を持つ——2次項κN(N−1)が分子のNより速く伸びるため。「増設するほど遅くなる」は設計ミスではなく式が予言する必然だと、κを0から動かした瞬間の形の変化で分かる。
  • κ=0にするとアムダール則にぴたりと重なる——頂点が消えて1/σの漸近線に張り付く。USLがアムダール則を内包していること、そして「頭打ちはするが悪化はしない」世界との差が、同じ画面で並べて見える。
  • κは平方根で効く——一貫性を強めてκを10倍にすると、N*はちょうど√10分の1になる。結果整合へ緩めてκを1桁下げれば頂点は√10倍遠のく。一貫性とスケーラビリティのトレードオフが1つの係数で定量化されている。
  • どの規模でどの項が支配するか——分母の内訳を見ると、小規模では基準の1、中規模では1次の競合項、大規模では2次の一貫性項へ主役が移る。2次項が1次項を追い越す地点から先は、ノードを足すほど不利になる。
  • 飽和前のデータだけで回帰すると頂点を見誤る——チェックを入れて測定範囲を絞ると、κの推定が崩れて予測N*が真値から外れる。効率が落ち始める領域まで負荷をかけないと頂点は当てられない、という記事の落とし穴を実際に起こせる。