基本情報の稼働率の計算問題|直列・並列システムとMTBF・MTTRを解説
稼働率の問題で、直列と並列のどちらがかけ算なのか、いつも分からなくなる。
選択肢の数字を見比べて、勘で選んでしまったことはありませんか?
先に答えをお伝えします。稼働率の計算問題は、3つの式で解けます。1台の稼働率は MTBF ÷(MTBF + MTTR)、直列につないだときは稼働率どうしのかけ算、並列につないだときは 1 −(それぞれが止まっている確率のかけ算)です。
この記事では、稼働率の意味から始めて、MTBFとMTTRの関係、直列と並列の計算、組み合わせた構成までを順に説明します。例題はすべてこの記事のために作ったもので、途中の式も省かずに書きます。
科目Aの計算問題の全体像を先に知りたい人は、同じ日に公開したこちらの記事が参考になります。
【関連記事】基本情報の科目A計算問題まとめ|苦手になりやすい8分野と解き方の順番
稼働率とは?MTBFとMTTRで決まる「動いている割合」¶
稼働率とは、システムが正常に動いている時間の割合のことです。0から1までの数で表し、1に近いほど止まりにくいシステムだと言えます。
MTBFとMTTRの意味¶
稼働率を求めるには、2つの用語を使います。どちらも英語の頭文字なので、意味とあわせて覚えておきましょう。
用語の意味を表にまとめます。
| 用語 | 読み方の例 | 意味 |
|---|---|---|
| MTBF | 平均故障間隔 | 故障してから次に故障するまで、正常に動いていた平均の時間 |
| MTTR | 平均修復時間 | 故障してから直るまでにかかった平均の時間 |
| 稼働率 | ― | 全体の時間のうち、正常に動いていた時間の割合 |
MTBFは長いほど、MTTRは短いほど、稼働率は高くなります。故障しにくく、故障してもすぐ直るシステムほど、よく動いているということです。
稼働率の式と例題¶
1台の装置の稼働率は、次の式で求めます。
稼働率 = MTBF ÷(MTBF + MTTR)
分母の MTBF + MTTR は、動いていた時間と止まっていた時間を足した、全体の時間です。分子の MTBF は、そのうち動いていた時間を表します。
例題です。MTBFが450時間、MTTRが50時間の装置の稼働率を求めます。450 ÷(450 + 50)= 450 ÷ 500 = 0.9 です。
この装置は、全体の時間の9割を動いていたことになります。
単位をそろえてから計算する¶
問題によっては、MTBFが時間、MTTRが分のように、単位が違って書かれていることがあります。そのまま足すと、答えがまったく違ってしまいます。
例題です。MTBFが9.5時間、MTTRが30分の装置の稼働率を求めます。まず、9.5時間を分に直すと、9.5 × 60 = 570分です。
単位がそろったので、式に当てはめます。570 ÷(570 + 30)= 570 ÷ 600 = 0.95 になります。計算を始める前に、数字の横に単位を書いておくと取り違えを防げます。
稼働率から止まっている時間を求める¶
稼働率が分かれば、逆に、どのくらいの時間止まっているかも計算できます。止まっている割合は、1 − 稼働率で表せるからです。
例題です。稼働率0.99のシステムが、1年間(365日)動いているとします。止まっている割合は 1 − 0.99 = 0.01 です。
止まっている時間は、365 × 0.01 = 3.65日になります。時間に直すと、3.65 × 24 = 87.6時間です。0.99と聞くと十分に高く見えますが、1年で見ると3日以上止まる計算になります。
MTBFとMTTRが変わると稼働率はどう動くか¶
稼働率を上げる方法は、2つあります。故障しにくくしてMTBFを延ばすか、早く直せるようにしてMTTRを縮めるかです。
さきほどの装置(MTBF 450時間、MTTR 50時間、稼働率0.9)で、MTTRを半分の25時間にしてみます。450 ÷(450 + 25)= 450 ÷ 475 で、およそ0.947になります。
修理の手順を整えたり、予備の部品を用意したりしてMTTRを縮めることも、稼働率を上げる立派な方法です。試験では、どちらの値が変わったのかを問題文から正しく読み取ることが大切です。
直列システムと並列システムの稼働率¶
実際のシステムは、1台の装置だけでできているわけではありません。サーバやネットワーク機器など、いくつもの装置がつながって動いています。
装置のつなぎ方には、直列と並列の2種類があります。身近なたとえとして、駅から会社まで向かう道を思い浮かべてください。
直列は「全部動いて初めて動く」¶
直列とは、装置が一列につながっていて、すべてが動いていないとシステム全体が動かない構成です。電車を乗り継いで会社へ行くとき、どちらか一方の路線が止まれば会社に着けない。これが直列の考え方です。
直列のシステム全体の稼働率は、それぞれの稼働率をかけ算して求めます。全部が同時に動いている確率を出すからです。
例題です。稼働率0.9の装置Aと、稼働率0.8の装置Bを直列につなぎます。全体の稼働率は、0.9 × 0.8 = 0.72 です。
1台ずつの稼働率より、全体の稼働率のほうが低くなっていることに注目してください。直列では、つなぐ装置が増えるほど全体は止まりやすくなります。
並列は「どれか1つ動けば動く」¶
並列とは、同じ役割の装置を横に並べておき、どれか1つでも動いていればシステム全体が動く構成です。会社へ行く道が2本あり、片方が通行止めでももう片方を通れば着ける。これが並列の考え方です。
並列の計算では、反対側から考えます。全体が止まるのは、すべての装置が同時に止まっているときだけだからです。
並列のシステム全体の稼働率は、次の式で求めます。
稼働率 = 1 −(1 − Aの稼働率)×(1 − Bの稼働率)
例題です。稼働率0.9の装置Aと、稼働率0.8の装置Bを並列につなぎます。Aが止まっている確率は 1 − 0.9 = 0.1、Bが止まっている確率は 1 − 0.8 = 0.2 です。
両方が同時に止まっている確率は、0.1 × 0.2 = 0.02 になります。よって全体の稼働率は、1 − 0.02 = 0.98 です。並列では、1台ずつの稼働率よりも全体の稼働率が高くなります。
直列と並列の違いを表で比べる¶
ここまでの内容を、表で並べて確かめておきましょう。
| 比べる点 | 直列 | 並列 |
|---|---|---|
| 全体が動く条件 | すべての装置が動いている | どれか1つの装置が動いている |
| 計算のしかた | 稼働率どうしをかける | 1 − 止まっている確率どうしのかけ算 |
| 例(0.9と0.8) | 0.9 × 0.8 = 0.72 | 1 − 0.1 × 0.2 = 0.98 |
| 全体の稼働率 | 1台ずつより低くなる | 1台ずつより高くなる |
答えを出したら、この最後の行で検算できます。直列なのに1台ずつより高い値が出たら、計算のしかたを取り違えています。
組み合わせた構成と計算の前提¶
試験では、直列と並列を組み合わせた構成もよく出てきます。考え方は、内側のかたまりから順に1つの装置に置き換えていくことです。
並列のかたまりを先に計算する¶
例題です。稼働率0.9の装置を2台並列につなぎ、そのかたまりに稼働率0.95の装置Cを直列につなぎます。全体の稼働率を求めてみましょう。
まず、並列のかたまりの稼働率を出します。1 −(1 − 0.9)×(1 − 0.9)= 1 − 0.1 × 0.1 = 1 − 0.01 = 0.99 です。
次に、このかたまりを稼働率0.99の1台の装置とみなし、装置Cと直列につなぎます。0.99 × 0.95 = 0.9405 になります。
計算の流れを表にしておきます。
| 手順 | やること | 計算 | 結果 |
|---|---|---|---|
| 1 | 並列のかたまりを1台に置き換える | 1 − 0.1 × 0.1 | 0.99 |
| 2 | 置き換えた1台と装置Cを直列でつなぐ | 0.99 × 0.95 | 0.9405 |
複雑な図が出てきても、この手順で小さなかたまりから片付ければ迷いません。
同じ装置を何台も並列にするとき¶
同じ稼働率の装置を3台、4台と並列につなぐこともあります。その場合は、止まっている確率を台数の分だけかけ算します。
例えば、稼働率0.8の装置を3台並列にすると、止まっている確率は 0.2 × 0.2 × 0.2 = 0.008 です。全体の稼働率は、1 − 0.008 = 0.992 になります。
「故障はたがいに独立」という前提¶
ここまでの計算には、大事な前提があります。それは、それぞれの装置の故障がたがいに独立している、つまり1台の故障がほかの装置の故障に影響しないということです。
例えば、2台のサーバが同じ電源につながっていると、電源が落ちたときに2台とも同時に止まります。こうした場合は、並列にしていても計算どおりの稼働率にはなりません。
現実のシステムで並列の効果をきちんと得るには、電源や回線を分けるなど、同時に止まる原因をできるだけ減らす工夫が必要になります。並列にした装置どうしが同じ弱点を抱えていないかを確かめることも、設計の大切な仕事です。
試験の問題文は、通常この前提のもとで書かれています。ただ、現実のシステムでは前提が成り立たないこともある、と知っておくと理解が深まります。
必要な台数を逆算する¶
稼働率の問題には、目標の稼働率から必要な台数を求める形もあります。この場合も、止まっている確率から考えると解きやすくなります。
例題です。稼働率0.9の装置を並列につなぎ、全体の稼働率を0.999以上にしたいとします。何台あればよいでしょうか。
全体が止まる確率を0.001以下にすればよいので、0.1を何回かけると0.001以下になるかを考えます。0.1 × 0.1 = 0.01 では足りず、0.1 × 0.1 × 0.1 = 0.001 でちょうど届きます。よって、必要な台数は3台です。
問題文の言葉から構成を読み取る¶
図が無い問題では、文章から直列か並列かを読み取る必要があります。ここで手がかりになるのが、全体が動く条件を表す言葉です。
よく出てくる言い回しと、対応する構成を表にまとめます。
| 問題文の言い回し | 構成 | 計算のしかた |
|---|---|---|
| すべてが正常なときだけ動く | 直列 | 稼働率どうしをかける |
| 両方が動いていないと処理できない | 直列 | 稼働率どうしをかける |
| どちらか一方が動いていればよい | 並列 | 1 − 止まっている確率のかけ算 |
| 少なくとも1台が動いていればよい | 並列 | 1 − 止まっている確率のかけ算 |
言い回しに印を付けてから式を選べば、直列と並列を取り違えることはぐっと減ります。
よくある間違い¶
最後に、稼働率の問題で起きやすい間違いを確かめておきます。原因を知っておけば、本番で同じミスを避けられます。
| 間違い | 原因 | 防ぎ方 |
|---|---|---|
| 並列なのにかけ算だけで答えた | 直列と並列の式を取り違えた | 答えが1台ずつより高いか低いかで検算する |
| MTBFとMTTRをそのまま足した | 時間と分の単位がそろっていなかった | 数字の横に単位を書いてから計算する |
| 並列で稼働率どうしを足した | 割合を足すと1を超えることがある | 止まっている確率から考える |
故障したあとの復旧の考え方は、バックアップの記事でも扱っています。MTTRを短くする工夫とあわせて読むと、稼働率の意味がより身近になります。
【関連記事】基本情報のバックアップ問題|方式の違いと復旧の考え方を解説
稼働率の次に取り組みたいこと¶
稼働率の式が分かったら、ほかの計算問題にも同じ考え方を広げていきましょう。割合をかけ算する考え方は、確率の問題でもそのまま使えます。
科目Aと科目Bをどう並行して進めるかは、こちらの記事が参考になります。計算問題に使う時間の目安を決めるときにも役立ちます。
【関連記事】基本情報技術者試験の勉強法|科目Aと科目Bの進め方を順番に解説
試験全体の出題内容や難しさを確かめたい人は、親記事もあわせて読んでおくと安心です。
【関連記事】基本情報技術者試験とは?試験内容・難易度・勉強法を初心者向けに解説
数字を1つずつ書き出して進める丁寧さは、科目Bで擬似言語のプログラムを追うときにも生きてきます。私たちの Giji Academy では、擬似言語シミュレーターで変数の値が変わる様子を1行ずつ確かめられます。講座は擬似言語の講座一覧から始められます。
まとめ¶
稼働率は、システムが正常に動いている時間の割合で、MTBF ÷(MTBF + MTTR)で求めます。計算の前に、MTBFとMTTRの単位をそろえることを忘れないようにしましょう。
直列は全部が動いて初めて動くので、稼働率どうしをかけ算します。並列はどれか1つが動けばよいので、1から止まっている確率のかけ算を引きます。組み合わせた構成は、並列のかたまりから順に1台へ置き換えれば解けます。
式の意味が分かれば、稼働率は確実に得点できる分野です。今日の例題を、もう一度自分の手で解いてみてください。