Slide 1

Slide 1 text

待ち行列理論で考えるGKEの 最適なポッド数 Inuverse エンジニアたちのゆるっと数学勉強会 #10 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカ フェ 1

Slide 2

Slide 2 text

目次 0. 自己紹介 1. 動機と示したいこと 2. 準備 GKEとは 待ち行列とは Poisson分布と指数分布 3. 解析 4. 結果 5. 結論と展望 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 2

Slide 3

Slide 3 text

自己紹介 Inuverse(いぬばーす) (=こだま) @mochi_dog_phys 2年目 小売企業Tの基幹システムでo11y計装, API 開発, 負荷検証 物理学、とくに宇宙が好き 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカ フェ 3

Slide 4

Slide 4 text

動機と示したいこと 動機 負荷検証でGKEのポッドにAPIで大量のリクエスト Cloud LoggingやCloud Traceで負荷状況を観測 負荷とポッドのリソースはどのような関係だろう。 。 。 負荷 処理能力 示したいこと 負荷と処理能力を軸にして、どれくらいのポッドの数であれば安全? SLOを満たすポッド数は? 待ち行列理論で考えるGKEの最適なポッド数 1. 負荷 処理能力を厳密に定義しているわけなく、当初の個人的な想像である。例えば負荷が 負荷 のときを想定すると、明らかに上記の式は破綻する。 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 4

Slide 5

Slide 5 text

準備 待ち行列理論 (Queueing theory) とは 確率が時間発展し、混雑状況が時事刻々と変化する系を記述するための理論 到着過程 サービス過程 M/M/cモデル 今回採用するモデル 負荷がランダムに到着し、処理の時間もランダムで、それを実行してくれるサ ーバが 個存在する、という意味 到着がランダム Poisson分布、処理時間がランダム 指数分布 待ち行列理論で考えるGKEの最適なポッド数 1. A. K. Erlang (1909) Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 5

Slide 6

Slide 6 text

解析 :待ち行列に 個のプロセスが残っている確率 :単位時間あたりの平均リクエスト数(到着率) : 個のプロセスが残っているときの、単位時間あたりの平均処理数(サービ ス率) ※ 最終的に待ちが発生する平均時間が知りたい。 待ち行列理論で考えるGKEの最適なポッド数 1. 今回はAPIのリクエストで負荷をかけているという状況を考えているが、一般にこの限りではない。 2. https://ia601403.us.archive.org/13/items/in.ernet.dli.2015.134547/2015.134547.Queueing-Systems-Volume-1-Theory.pdf Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 6

Slide 7

Slide 7 text

解析 ポッド数を調整するとして、最終的にポッド数は落ち着くはず 負荷が高いままならHPAする 状態 から状態 への流れ 状態 から への流れ 状態 から への流れ これが成り立つとき、詳細釣り合いの式 ある程度CPU使用が高い状態を維持しているとき、リクエストの早さと処理の速 さが同じ、ということを表しています。 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 7

Slide 8

Slide 8 text

解析 平均待ち時間 95%ile待ち時間を とし、平均待ち時間を とします。待ち時間が を越さな い確率が なので これを について解くと これは待ち時間なので、ユーザが体感する応答時間 は 、 待ち行列理論で考えるGKEの最適なポッド数 指数分布を使用しています。 は、実は に依存します。 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 8

Slide 9

Slide 9 text

結果 負荷と処理能力を軸にして、どれく らいのポッドの数であれば安全? SLOを満たすポッド数は? e.g., SLO: 95%ile時間が 以 内に収める 件 :  件 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市 天神エンジニアカフェ 9

Slide 10

Slide 10 text

まとめ 定常状態において、想定される負荷と処理能力をきちんと評価できれば、ビジネ スを満たすポッド数を決めることができる(もしくは範囲を制限することができ る) 実務を続けていく中で、定常状態って仮定があんまりよろしくない。基本的に気 にすることはバースト負荷があるとき。 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 10

Slide 11

Slide 11 text

Appendix 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 11

Slide 12

Slide 12 text

ポアソン分布 平均リクエスト数を とする。 観測時間を とし、 となるように分割。 中にリクエストが来る確率 は十分小さいとする 平均リクエスト数を とする 時間 中に 回のリクエスト なので、このリクエストが来る確率を とすると...... 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 12

Slide 13

Slide 13 text

ポアソン分布 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 13

Slide 14

Slide 14 text

指数分布 1つのポッドあたりの単位時間あたりの平均処理数を 上記がポアソン過程であるとする(単位時間あたりに 個の処理を捌く) までの間、一度も処理されない確率は? つまり、処理時間が を超える確率は 逆に、時間 以内に処理が完了する確率は、上記の余事象を考えれば良くて 以下で処理が完了する確率密度関数は 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 14

Slide 15

Slide 15 text

(i) ポッド数未満のリクエスト 単位時間あたりの処理数は 詳細釣り合いの式 待ち 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 15

Slide 16

Slide 16 text

(ii) ポッド数以上のリクエスト( ) 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 16

Slide 17

Slide 17 text

を求める です。左辺を計算すると 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 17

Slide 18

Slide 18 text

を求める よって、 です。 なので、行列になんの処理もない確率は上記のようになります。 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 18

Slide 19

Slide 19 text

平均待ち行列長 リクエストが処理を待っているときの行列の平均の長さ 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 19

Slide 20

Slide 20 text

平均待ち行列長 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 20

Slide 21

Slide 21 text

平均待ち行列長 もともと であったので、 待ち です。これで「待ち」が発生する確率を表すことができ、それゆえ、 を「待 ち」の長さとみなすことができます。 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 21

Slide 22

Slide 22 text

平均待ち時間 cf. は単位時間あたりの平均的な負荷の量 平均待ち時間が なので、待ち時間が 以下である確率は 待ち行列理論で考えるGKEの最適なポッド数 Inuverse/エンジニアたちのゆるっと数学勉強会 #10@2025-09-30, 福岡市天神エンジニアカフェ 22