コンピュータシステム

MTBFとMTTRの違い、そして稼働率を学ぼう!(システムの故障間隔と修理時間)

情報処理の学習をしていると「システムの信頼性や稼働率」というテーマにおいて、「MTBF」、「MTTR」って言葉が出てきます。MTBっていうとマウンテンバイクかと思いますが、そんなはずはございません。(笑)

システムは故障が少なく、稼働している時間が長いほど、性能が良いシステムといえます。MTBFやMTTRはシステムが信頼できるものであるかを数値で表すためのものです。

意味も計算式もそれほど難しくないので、理解し易いですが、良く情報処理の問題で出題されたりします。

今回はそんなMTBFとMTTR、それらを使って算出できるシステムの稼働率に関して解説していきます!

MTBFとは?

MTBFは「Mean Time Between Failure」の略で、システムが故障していない時間(連続稼働時間)を表す指標です。つまり、システムが動き出してから故障するまでの時間となります。

ちょっと極端な例ですが、システムを起動させてから、200時間後に故障して、故障対応後、次は150時間後に故障して、故障対応後、次は250時間後に故障するとします。

この場合、それぞれの故障まで正常に稼働していた時間の平均は以下のようになります。

$$\frac{200(h)+150(h)+250(h)}{3} = 200(時間)$$

式にすると以下の形ですね。

MTBFの式

$$MTBF = \frac{ある期間でシステムが稼働していた時間}{ある期間での故障回数}$$

勿論、サンプル数が多い(ログを取っている期間が長い)方が、MTBFの精度は高くなるかと思います。

ちょっと分かりにくいので図で表現してみました。

MTBFの計算イメージ

MTBFの値が大きければ大きいほど信頼できるシステムとなります。

MTTRとは?

続いて、MTTRです。MTTRは「Mean Time To Repair」の略で、システムが故障した際の修理に掛かる時間を表す指標です。つまり、このシステムが故障した時に「どれだけシステムが使えないか」を値にしたものです。

先ほどのMTBFの例で、システムが故障した時に、復旧させるのにそれぞれ、3時間、1時間、2時間かかったとします。その時のMTBFは以下のように算出できます。

$$\frac{3(h)+1(h)+2(h)}{3} = 2(時間)$$

式にすると以下の形ですね。

MTTRの式

$$MTTR = \frac{ある期間でシステム故障時の修理に掛かった時間}{ある期間での故障回数}$$

コチラもサンプル数が多い(ログを取っている期間が長い)方が、MTTRの精度は高くなるかと思います。

MTTRの計算イメージ

MTTRの値が小さければ小さいほど、保守性の高いシステム(信頼できるシステム)となります。

稼働率とは?

システムの稼働率とは、システムを開発し、「導入してから稼働している時間を割合(パーセント)で示したもの」です。

稼働率は先ほどのMTBFとMTTRを使って、簡単に算出することができます。

稼働率の式

$$稼働率 = \frac{MTBF}{MTBF+MTTR} = \frac{全運転期間の中でシステムが故障していない時間}{システムの全運転期間}$$

この値が高ければ高いほどシステムは安定して稼働している、ことになります。

上のMTBFとMTTRで例としてあげたシステムの場合は、MTBFが「200時間」でMTTRが「2時間」なので、稼働率は以下の通りとなります。

$$\frac{200(h)}{200(h)+2(h)} ≒ 0.99$$

パーセント表示にすると「99%」になりますね。99%だと値としてはちょっと悪くて、普通のシステムであれば、「99.999%(ファイブナインなんて呼びます)」くらいの値になると思います。

また、大きなシステムになると、複数のシステムを繋いで一つのサービスを提供している場合があります。そのような時のシステム全体の稼働率(直列接続、並列接続)の求め方がありますが、それはまた別の記事で紹介できればと思います!

まとめ

今回はシステムの信頼性の指標となる、MTBF、MTTR、稼働率について学んでみました。

私の経験上、あまりこれらの数値を計測して、信頼性を計ったりすることは無いのですが、複数あるシステムを比較する時などには有効活用できそうですね。

MTBFとMTTRは結構似た文字なので間違って覚えないよう気を付けましょう!

以上です!

-コンピュータシステム