商品検索と発注入力が可能なWebシステムについて,時間帯別のトランザクション数を表1に,TPS(Transaction Per Second)による必要なCPU数を表2に示す。
このWebシステムに必要かつ十分なCPU数は幾つか。
ここで,OSのオーバヘッドなどの処理については無視でき,トランザクションはそれぞれの時間帯の中で均等に発生するものとする。
表1 時間帯別のトランザクション数 単位 件
/|9:00~10:00|11:00~12:00|13:00~14:00/商品検索|10,800|43,200|21,600/発注入力|7,200|21,600|14,400
表2 TPSによる必要なCPU数
/|10TPS未満|10TPS以上20TPS未満|20TPS以上30TPS未満|30TPS以上40TPS未満/必要なCPU数|1|2|3|4
正答2
解説
正解は2です。
この問題は、時間帯ごとのトランザクション数を1秒当たりの件数(TPS)に換算し、最も負荷の高い時間帯に必要なCPU数を求めるものです。
トランザクションは各時間帯の中で均等に発生するので、1時間(3,600秒)の件数を3,600で割ればTPSになります。
【計算】
9:00〜10:00の合計は 10,800+7,200 = 18,000件です。
18,000÷3,600 = 5TPS で、10TPS未満なのでCPUは1個です。
11:00〜12:00の合計は 43,200+21,600 = 64,800件です。
64,800÷3,600 = 18TPS で、10TPS以上20TPS未満なのでCPUは2個です。
13:00〜14:00の合計は 21,600+14,400 = 36,000件です。
36,000÷3,600 = 10TPS で、10TPS以上20TPS未満なのでCPUは2個です。
全ての時間帯をまかなうには、最大値の2個が必要かつ十分です。
【選択肢別解説】
1:× CPU1個で処理できるのは10TPS未満です。
11:00〜12:00の18TPSや、13:00〜14:00の10TPSは処理できません。
2:○ 最も負荷の高い11:00〜12:00でも18TPSなので、2個のCPUで処理できます。
これより少ないと不足し、多いと過剰になります。
3:× CPU3個は20TPS以上30TPS未満の場合に必要な数です。
最大でも18TPSなので、3個は過剰です。
4:× 3つの時間帯の合計118,800件を1時間分として計算すると33TPSとなり、4個に見えます。
しかし処理能力は時間帯ごとに評価する必要があり、4個は過剰です。
【ポイント】
必要な処理能力は、平均ではなくピーク時の負荷で決めるのが基本です。
「以上」「未満」の境界に注意し、10TPSちょうどは2個の区分に入る点を見落とさないようにしましょう。