システムが全時間のうち正常に稼働している割合。
稼働率とは、システムが全時間のうち、正常に動いている時間の割合のことです。0〜1(または 0〜100%)で表され、1(100%)に近いほど「ほとんど止まらず動き続けている」ことを意味します。
身近な例で考えると、1年365日のうち、お店が開いていた日の割合に似ています。年に数日だけ休むお店は稼働率が高く、しょっちゅう臨時休業するお店は稼働率が低い、というイメージです。システムも同じで、止まっている時間が少ないほど稼働率が高くなります。
上のツールで▶ボタンを押すと、MTBF(稼働できる時間)と MTTR(修復時間)の長さから稼働率を計算する流れを確認できます。
稼働率は、これまで学んだ MTBF(稼働できる時間)と MTTR(修復にかかる時間)を使って次の式で求めます。
稼働率 = MTBF ÷ (MTBF + MTTR)
この式は「稼働時間 ÷ 全時間」を表しています。それぞれの意味は次のとおりです。
・分子の MTBF:実際に稼働できている時間
・分母の MTBF + MTTR:稼働時間と修復時間を合わせた「全時間」
つまり「全時間のうち、どれだけ稼働できていたか」という割合をそのまま計算しているわけです。分母には必ず MTTR(止まっていた時間)も足し込む点がポイントです。これを忘れて MTBF だけで割ってしまうと、稼働率は計算できません。上のツールで分子(緑の括り)と分母(赤の括り)が、それぞれタイムバーのどの部分を指しているかを見比べてみてください。
実際の数値で稼働率を計算してみましょう。MTBF が 90時間、MTTR が 10時間のシステムを考えます。
稼働率 = MTBF ÷ (MTBF + MTTR)
= 90 ÷ (90 + 10)
= 90 ÷ 100
= 0.9(= 90%)
この結果は「全時間の90%は正常に稼働している」という意味です。残りの10%は故障して止まっている時間(=不稼働率 0.1)にあたります。稼働率と不稼働率を足すと必ず1(100%)になる、と覚えておくと検算に役立ちます。
同じ計算を別の数値でも試してみましょう。MTBF=475h、MTTR=25h なら、475 ÷ (475 + 25) = 475 ÷ 500 = 0.95(95%)となり、より稼働率の高いシステムだと分かります。上のツールでシナリオを切り替えると、MTBF と MTTR の値に応じて稼働率が連動して変わる様子を確認できます。
システムが複数の機器で構成されているとき、「どのようにつなぐか」によって全体の稼働率が変わります。つなぎ方には大きく直列と並列の2種類があります。
直列(両方が動いてはじめてサービスが成立する場合)は、1台でも止まるとシステム全体が止まります。そのため全体の稼働率は各機器の稼働率をかけ合わせた値になり、機器が増えるほど全体の稼働率は下がります。
直列の稼働率 = A × B
例:0.9 × 0.9 = 0.81(81%)
並列(どちらか一方でも動いていればサービスが続く場合)は、AとBが両方とも同時に故障しない限り動き続けます。そのため全体の稼働率は1から「全機器が同時に故障する確率」を引いた値になり、機器が増えるほど全体の稼働率は上がります。
並列の稼働率 = 1 − (1−A) × (1−B)
例:1 − (1−0.9) × (1−0.9)
= 1 − 0.1 × 0.1
= 1 − 0.01 = 0.99(99%)
なぜ並列にすると稼働率が上がるのか。それは、AとBが同時に故障する確率がとても小さいからです。稼働率0.9の機器が1台だと「10%の確率で止まる」ですが、2台並列にすると「両方が同時に止まる確率は0.1×0.1=1%」まで下がります。銀行やデータセンターが予備サーバを用意するのは、この並列の原理でシステム全体の稼働率を高めるためです。
稼働率の式 MTBF ÷ (MTBF + MTTR) を見ると、稼働率を上げるための方針が2つ読み取れます。
・MTBFを長くする(分子を大きくする):壊れにくい部品を使う、定期メンテナンスをする
・MTTRを短くする(分母に足される値を小さくする):修復の手順を整備しておく、予備部品をすぐ用意できるようにしておく
なぜ両方が大切なのか。たとえばMTBFが非常に長くてもMTTRが100時間(直すのに4日以上)かかるなら、いざ故障したときに長期間サービスが止まります。逆にMTTRが短くても、頻繁に故障するなら利用者は毎回止まります。「壊れにくく、かつ直りやすい」の両立が稼働率を高める本質です。
さらに前の「直列・並列」でも確認したように、並列化(冗長化)することで全体の稼働率を大幅に引き上げることもできます。ホットスタンバイなどの二重化がまさにこの考え方を活用したものです。