ピーク時
平均で用意すると足りない
前回出した QPS は平均です。1日を平らにならした数なので、そのまま台数を決めると足りません。
席の予約サービスは、公演の発売開始に集中します。24時間のうちの数分に、その日の要求の大半が来ます。
平均2 QPS のサービスでも、その数分は100 QPS を超えます。
その数分が、このサービスで一番大事な数分です。
発売開始につながらない予約サービスは、使われません。 空いている時間に速いことには、誰も価値を感じません。
ピーク係数を置く
ピークは平均の何倍か、を1つの数で持ちます。これをピーク係数と呼びます。
Python
# 平均 2 QPS、ピーク係数 50 → ピークは 100 QPS
# 1台40件なら 100 ÷ 40 = 2.5 → 3台最初は測れないので仮に置きます。仮でも置けば台数が出ます。
第1章では、要件に書いてあった「ピーク200件/秒」をそのまま使いました。
今回はその数字を自分で出しています。要件に書いてなければ、平均とピーク係数から作ります。
平均で決めた台数は、発売開始の日に足りません。
演習
平均 QPS とピーク係数、1台が捌ける数から、ピーク QPS と必要な台数を出します。
要件
- peak_qps は average_qps × peak_ratio
- servers は peak_qps ÷ qps_per_server を切り上げた数
- peak_qps が 0 のときは servers も 0 にする
ヒント
編集 ゆめさく編集部