窓口4台を使用率80%で回すと、平均の待ちは7.6分でした。処理そのものは10分です。
95%まで上げると43.0分になります。使用率を1.19倍にして、待ちは5.7倍です。
使用率と待ち時間は比例しません。ある点から先は、少し詰めるだけで待ちが跳ねます。
ジョブキューでいちばん効くのがどこまで詰めるかです。実際に走らせて、待ちの伸び方を測りました。
窓口4台、1件あたり平均10分という条件で、仕事4万件を流します。到着と処理はどちらも指数分布で置きました。
狙った使用率 実測の使用率 平均の待ち 95%点の待ち 待ちが処理時間の何倍か 50% 49.6% 0.8分 6.0分 0.08倍 70% 69.5% 3.5分 17.8分 0.35倍 80% 79.4% 7.6分 32.4分 0.76倍 90% 89.3% 20.3分 75.0分 2.03倍 95% 94.3% 43.0分 148.1分 4.30倍 98% 97.3% 87.0分 270.5分 8.70倍
50%では待ちが0.8分です。処理の10分に対して1割以下なので、ほぼ待たされません。
80%でも7.6分で、処理時間より短い水準です。ここまでは素直に増えています。
90%を超えると様子が変わります。80%から90%へ上げただけで、待ちは7.6分から20.3分へ2.7倍です。
95%では43.0分、98%では87.0分になります。使用率を1.19倍にして、待ちは5.7倍という関係です。
出典もキューの役割を仕事はジョブキューへ投入され、計算環境で実行できるようになるまでそこに留まると説明しています。留まる時間が、この表です。
使用率と待ちは比例しない。ある点から跳ね上がる。
Jobs are submitted to a job queue where they reside until they can be scheduled to run in a compute environment.原文AWS「Job queues」(AWS Batch ユーザーガイド) この内容の有効期限2027-02-18
平均が同じでも、処理時間のばらつきで待ちが変わります。並べる順番でも変わります。
ジョブキューの待ちは、使用率だけでは決まりません。処理時間のばらつきも効きます。
仕事2万件のうち8割を短い仕事(平均2分)、2割を長い仕事(平均42分)にしました。全体の平均は10分で、使用率は8割です。
並べ方 仕事の種類 平均の待ち 中央値 95%点 99%点 来た順 短い仕事 31.8分 11.1分 123.8分 223.3分 来た順 長い仕事 31.9分 11.0分 121.6分 253.0分 短いものから 短い仕事 5.2分 1.1分 24.7分 49.3分 短いものから 長い仕事 20.7分 3.8分 91.5分 196.2分
来た順に流した場合、平均の待ちは31.8分です。前の節の使用率80%は7.6分でした。
使用率も平均処理時間も同じなのに4倍になっています。差は処理時間のばらつきだけです。
長い仕事が窓口を42分ふさぐあいだ、短い仕事が後ろで待ちます。平均で設計すると、この分が抜けます。
短いものから流すと、短い仕事の待ちは5.2分まで落ちます。6分の1です。
長い仕事も31.9分から20.7分へ減りました。行列が短くなるので、全体が速くなります。
ただし種類による差は開きます。来た順ではほぼ同じ待ちでしたが、短いものからでは約4倍の差が付きます。
出典もこの調整を異なる並べ方の方針を指定すれば、自分の必要に応じて計算資源を割り当てられるとしています。
並べ方を変えると、待ちの中央値と裾の両方が動く。
By specifying a different scheduling policy, you can allocate compute resources according to your specific needs.原文AWS「Fair-share scheduling policies」(AWS Batch ユーザーガイド) この内容の有効期限2027-02-18
台数は使用率を決めます。順番は待ちの配り方を決めます。上限は詰まったときの逃げ道です。
ジョブキューを設計するとき、決めるのは台数・順番・上限の3つです。
許せる待ちの上限を先に置きます。その上限に収まる使用率まで台数を足すという向きです。
この計測なら、待ちを処理時間以下にしたければ使用率80%までです。90%を狙うと20.3分かかります。
順番を指定しなければ来た順になります。出典もジョブキューに並べ方の方針があれば、その方針が実行の順番を決めると述べています。
4番目は、種類ごとに使用率が別々になります。片方が空いていても、もう片方は待つという形です。
行列の長さに上限を置かないと、詰まったときに待ちが伸び続けます。あふれた分は断るか、別の先へ回します。
一括で流す処理なら、断らずに翌日へ回す手もあります。バッチ処理の記事では、その組み方を扱っています。
台数・順番・上限のどれかが欠けると、詰まったときに止まらない。
到着と処理は指数分布という置き方です。実際の到着は時間帯で偏り、処理時間も裾が重いことがあります。偏りが強いほど、同じ使用率でも待ちは伸びます。ここで見せているのは、使用率と待ちが比例しないことと、平均が同じでもばらつきで待ちが変わるという関係です。
If the job queue has a scheduling policy, the scheduling policy determines the order that jobs are run in.原文AWS「Fair-share scheduling policies」(AWS Batch ユーザーガイド) この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る