0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【インフラ設計】応用情報 平成27年秋問13【解説】

0
Last updated at Posted at 2026-05-24

問題

次のシステムにおいて,ピーク時間帯のCPU使用率は何%か。ここで,トランザクションはレコードアクセス処理と計算処理から成り,レコードアクセスはCPU処理だけで入出力は発生せず,OSのオーバヘッドは考慮しないものとする。また,1日のうち発生するトランザクション数が最大になる1時間をピーク時間帯と定義する。

〔システムの概要〕
(1) CPU数:1個
(2) 1日に発生する平均トランザクション数:54,000件
(3) 1日のピーク時間帯におけるトランザクション数の割合:20%
(4) 1トランザクション当たりの平均レコードアクセス数:100レコード
(5) 1レコードアクセスに必要な平均CPU時間:1ミリ秒
(6) 1トランザクション当たりの計算処理に必要な平均CPU時間:100ミリ秒

ア:20 イ:30 ウ:50 エ:60

結論

正解は 「エ:60(%)」 です。

一見数字がたくさんあってややこしいですが、やることは「1件の処理にかかる時間」と「ピーク時に来る件数」を掛け合わせて、1時間(3600秒)の枠にどれくらい収まるかを計算するだけです。

解説:3つのステップでサーバーの限界を見極める

例えばWebサービスを運用していて、「夜21時のアクセス集中でサーバー落ちないかな?」と心配になった時。
この問題は、その見積もりを計算で出す方法です。

①トランザクションの「重さ」を測る

まず、ユーザーが1回リクエストを送ってきたとき(1トランザクション)、CPUがどれくらいの時間働く必要があるのかを出します。

問題文に「トランザクションはレコードアクセス処理と計算処理から成る」とあるため、この2つを足し合わせます。(※実際のWeb開発ではDBからのデータ取得待ちである「I/O待ち」が発生しますが、この問題では純粋なCPUの処理時間のみを考えます)

  • レコードアクセス: 100レコード × 1ミリ秒 = 100ミリ秒
  • 計算処理: 100ミリ秒
  • 合計: 100 + 100 = 200ミリ秒(0.2秒)

つまり、CPUは1件のリクエストをさばくのに「0.2秒」かかります。

②ピーク時の「アクセス数」を測る

次に、一番忙しい1時間(ピーク時間帯)に、どれくらいのリクエストが降ってくるのかを計算します。

  • 1日の総件数: 54,000件
  • ピーク時の割合: 20%
  • ピーク時の件数: 54,000 × 0.20 = 10,800件

③1時間の枠に対して、どれくらいパツパツか?(使用率)

最後に、一番忙しい1時間にCPUが「合計何秒働く必要があるのか」を出します。

  • 10,800件 × 0.2秒 = 2,160秒

1時間は「3,600秒(60分 × 60秒)」です。
つまり、CPUは1時間(3600秒)のうち、2160秒間フル稼働することになります。これを割合(%)に直します。

  • 2160 ÷ 3600 = 0.6 = 60%

したがって、ピーク時のCPU使用率は 60%(エ)となります。

まとめ:この計算ができると何が嬉しい?

実務において「ピーク時のCPU使用率が60%」と分かれば、インフラ担当者は「まだ40%の余裕があるから、突発的なバズりがあっても耐えられそうだな」とか、「もし使用率が80%を超えそうなら、サーバーの台数を増やそう(スケールアウト)」といった設計判断ができるようになります。

🍌NanoBanana君による解説漫画

稼働率.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?