稼働率を計算するときに使われるMTTR(Mean Time Ti Repair)を日本語で言うとなんというか。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

平均故障間隔(へいきんこしょうかんかく)とは、機械システムや情報システムなどにおける信頼性(Reliability)をあらわす指標となる数値。英語のMean Time Between Failure(s)からMTBFと略される[1]。

概要[編集]

字義通り、故障から次の故障までの平均的な間隔を表している。言い換えると連続稼働できる時間の平均値である。つまり、MTBFの数値が大きいほど信頼性の高いシステムであるといえる。また、故障率はこの値の逆数で、故障率 = 1 / MTBFとなる。

故障しても修理することで再使用できる修理系システムに用いられる語であり、修理できない非修理系システムの故障寿命をあらわすには平均故障時間 (Mean Time To Failure、略称:MTTF)が用いられる。

よく勘違いされることではあるが、MTBFは耐用寿命をあらわす指標としては有用ではない。推定寿命や耐用年数を算出するには加速度試験(加速劣化試験)などに頼らねばならない。

種類[編集]

MTBFには連続動作時(CCS)と間欠動作時(ICAS)の2種類がある。通常CCSの方が条件が厳しくMTBFが短くなるが、蛍光灯・HDD・ブラウン管テレビ・自動車(発進加速時)・飛行機(離陸時・与圧時)などでは起動時に大きい負荷をかけるためCCSよりICASの方がMTBFが短くなることがある。

原子炉(停止時)・高炉(停止時)・飛行機(着陸時)・コンピュータ(シャットダウン)などでは停止時にも大きな負荷がかかるため、ICASでのMTBFが短くなる傾向がある。

算出方法[編集]

MTBF = システムの稼働時間 / 故障回数 で求めることができる。

実際にはある特定のシステムを何時間も監視するのではなく、同じシステムを何個も監視し、個々の動作時間を合計した総動作時間を使ってMTBFを算出する。例えば1個のシステムについて100万時間の稼働時間中、10回故障したと仮定すると、MTBFは10万時間であることが分かる。しかし100万時間(約114年)ものあいだシステムを監視し続けることは現実には不可能である。そこで実際には同じシステムを10万個用意するなどして100時間(約4日)だけ監視することで延べ1000万時間稼働したと仮定する。この100時間のあいだに10万個のうち100個が故障したならば、やはりMTBFは10万時間であることが分かる。

上述の2つの例はMTBFが同じであるにもかかわらず、直感的には前者の方が信頼性が高いように思える(誕生日のパラドックス)。これはMTBFの算出方法では磨耗や経年劣化の程度を考慮しないためで、後者の稼働時間を合算する方法では統計学的・論理的には正しいが、現実的には誤った指標となってしまう可能性が高い。MTBFが感覚上の故障間隔と乖離があるのはこのためである。

コンピュータシステム[編集]

コンピュータシステムの信頼性を総合的に評価する基準として、RAS、RASISという概念が存在する。

  • Reliability(信頼性)
  • Availability(可用性)
  • Serviceability(保守性)
  • Integrity(保全性)
  • Security(機密性)

信頼性(Reliability)は、システムが安定して稼働し続けている時間からみた安定性の指標平均稼働時間(MTBF)である。これと対になる指標として、保守性(Serviceability)[2]が挙げられる。平均修復時間(Mean Time To Repair、MTTR)は、システムの保守性をあらわす指標であり、修理に費やされる平均的な時間から算出される。

MTBF(信頼性の指標)とMTTR(保守性の指標)から、システムにおける可用性(Availability)の指標である稼働率が導かれる。稼働率が高いほど、そのシステムは正常に動作する。

稼働率を計算するときに使われるMTTR(Mean Time Ti Repair)を日本語で言うとなんというか。

稼働率の求め方

MTBFが大きくMTTRが小さいシステムほど可用性が高く、総合的な信頼性が高いシステムであるといえる。

関連項目[編集]

  • 平均修復時間(MTTR)
  • AQL
  • RASIS
  • 可用性
  • フォールトトレラントシステム
  • 再生過程
  • 故障率曲線

脚注[編集]

  1. ^ JIS Z 8115:2000は、MTBFは「平均故障間動作時間」で、「故障間動作時間の期待値」と定義し、「ある特定期間中のMTBFは,その期間中の総動作時間を総故障数て除した値である。」としている。「平均故障間隔」については、「MTBFという略号は現在この意味では使われない」としている。
  2. ^ JIS X 0014「情報処理用語―信頼性、保守性及び可用性」においては、serviceabilityに対応する訳語は「運用性」(サービス性)であり、「保守性」に対応する英語はmaintainabilityである。

外部リンク[編集]

  • MTBF 計算器

この『CRE が現場で学んだこと』シリーズでは前回、ロード シェディングという手法で「成功による障害」を切り抜ける方法について紹介しました。これに対して素晴らしいフィードバックをたくさんいただきましたが、その中に、いかにして数値を事業目標と結びつけるべきかという質問がいくつかありました。

そこで今回は、最初の原理に立ち戻り、そもそも成功とは何を意味するのかを追究し、実際にシステムが成功しているかどうかを把握する方法について考えてみたいと思います。

成功の前提となるのは可用性です。可用性のないシステムは機能を実行できませんし、最初の段階で失敗します。では、可用性とは一体何なのでしょうか。まずはこの言葉を定義しなくてはなりません。

可用性とは、システムが意図した機能をある時点で実行できるかどうかということです。可用性の測定はレポーティング ツールとして活用されるほか、過去の可用性を見ることで、今後もシステムが期待どおりに動くかどうかも把握できます。

可用性は、直接時間で計測されるだけでなく、時にはリクエスト数によって計測されることもあります。いずれにしても数式の構造は同じで、合計の単位を成功の単位で割ることになります。

たとえば、稼働時間 /(稼働時間 + 停止時間)や、成功したリクエスト数 /(成功したリクエスト数 + 失敗したリクエスト数)という数式で可用性を計測できます。どの単位を使用するかにかかわらず、計測の結果は 99.9 % や 99.999 % といった割合で示され、これをスリー ナイン、ファイブ ナインと呼ぶこともあります。

可用性を高める一番の方法は、失敗(停止時間や失敗リクエストなど)の要因に焦点を当てることです。時間ベースの可用性を例に説明しましょう。

一定の期間(たとえば 30 日、または 4 万 3,200 分)と、可用性の目標値 99.9 %(スリー ナイン)があったとします。単純計算では、このシステムには 30 日間のうち 43.2 分以上の停止時間が認められていません。43.2 分という数字は、計画時の非常に具体的な数値となっており、エラー予算と呼ばれることがあります。30 日の間に 43.2 分以上システムが停止すると、可用性の目標が達成できなかったことになるのです。

エラー予算を理解し計画するにあたって、より深い 2 つの概念が使われることがあります。

1 つは Mean Time Between Failures(MTBF)であり、失敗の間隔の平均時間を表します。数式は、(稼働時間の合計)/(失敗の回数)です。

もう 1 つは Mean Time to Repair(MTTR)で、失敗から回復するまでの平均時間です。数式は、(停止時間の合計)/(失敗の回数)です。

こうした数値は(過去 3 か月や過去 1 年など)過去にさかのぼって計算でき、(合計期間 / MTBF)× MTTR という数式で予想停止時間を計算することも可能です。先ほどの例から引き続き計算すると、過去の MTBF が 10 日間で、過去の MTTR が 20 分となり、停止時間は 60 分となることが予想されます(計算式は(30 日 / 10 日)× 20 分です)。

つまり、スリー ナインという可用性の目標値を達成するうえでのエラー予算である 44 分をオーバーしてしまいます。目標を達成するには、MTBF を(20 日ごとといったように)低減させるか、MTTR を(10 分などに)抑えるか、もしくはその両方を組み合わせるしかありません。

可用性を定義する際に、エラー予算や MTBF、MTTR などの概念を念頭に置くと、なぜ目標値がそのように設定されたのかを正当化するのに役立ちます。単に目標としていくつのナインが必要だというのではなく、その目標値を、許容された停止時間や停止頻度、回復までの時間といったユーザー エクスペリエンスと結びつけることが可能になるのです。

次に、可用性の計測時にユーザー エクスペリエンスに焦点を当てる方法について考えてみましょう。

可用性の計測

システムの可用性が担保されていることを、どのようにして把握すればよいのでしょうか。ここで、架空の「シェイクスピア」というサービスを想定してみましょう。

シェイクスピアは、シェイクスピアの小説に登場する特定の言葉やフレーズが言及されていることを探し出すサービスです。これは標準的な例であり、Google でもトレーニングの際によく使われていて、SRE(サイト信頼性エンジニアリング)の本でも数多く引用されています。

では、架空シェイクスピア システムの可用性を判定する科学的な手法を試してみましょう。

  1. 問題 : システムはどの程度稼働していますか?
  2. 観察 : shakespeare.com にアクセスすると、通常は “200 OK” というステータス コードと HTML blob が返ってきます。滅多にありませんが、500 Internal Server Error や接続失敗となることもあります。
  3. 仮説 : 1 日間のリクエストにおいて 200 OK となる率が可用性だとすると、システムは 99.9 % の可用性を担保しています。
  4. 測定 : シェイクスピア サービスのウェブ サーバーのレスポンス ログを追いかけ、ログ処理システムでダンプします。
  5. 分析 : 1 日の可用性を、200 OK となるレスポンス率と、リクエスト数の合計で計算します。
  6. 解明 : 7 日後、どの日も最低 99.7 % の可用性が担保されていました。

この可用性の数値を上司(Dave)に上機嫌で報告し、帰宅します。うまく仕事をこなせましたね。

翌日、Dave はサポート フォーラムに注目します。ユーザーが、shakespeare.com で検索しても何も結果が出てこないと文句を言っているのです。問題が起こっていることは明らかなのに、なぜ可用性ダッシュボードには昨日 99.7 % の可用性を担保していると示されているのか、Dave は問いただします。

ログを確認してみると、過去 24 時間にウェブ サーバーはちょうど 1,000 件のリクエストを受信し、3 件は 500 Internal Server Error となったものの、他はすべて 200 OK となっていました。1 秒あたり少なくとも 100 クエリがあったとすると、ダッシュボード上では何も問題がないのにユーザーがフォーラムで文句を言っている理由がわかります。

つまり、可用性を定義する際の測定方法がユーザーの期待値や事業目標に合っていないという典型的な間違いを起こしてしまったのです。

ブラック ボックスを監視し、ユーザー エクスペリエンスに基づいた可用性を再定義する

シェイクスピアのフロントエンド サービスがバックエンドにまで届くことを防ぐように、(設定ファイルのタイプ ミスという)致命的な問題を修正したら、今度はシステムの可用性の意味をもう一度考えてみましょう。

「shakespeare.com で 200 OK となる率」が適切な可用性の測定法でないのだとしたら、どうやって可用性を測定すればよいのでしょうか。

Dave は、ユーザーが感じる可用性を知りたいと考えています。shakespeare.com が稼働しているとユーザーが感じるのはどんな場合なのでしょうか。あれこれと活発に議論した結果、システムが稼働しているという状況は、ユーザーが shakespeare.com にやって来て、質問を入力し、5 秒以内に 100 % その結果が返される状況だということで落ち着きました。

そこで、ブラック ボックスの「探査機」を作ることにします(ブラック ボックスとしているのは、シェイクスピア サービスの実装に関しては何も想定しないためです。SRE 本の第 6 章を参照してください)。

この探査機を用いて、(モバイルやデスクトップなど)完全なクライアント サービスをエミュレートします。それぞれのタイプのクライアントから shakespeare.com にアクセスし、「生きるべきか死ぬべきか」というフレーズを入力し、その結果にハムレットへのリンクが含まれているかを確認します。

この探査機を 1 週間稼働させた後、1 日の最小の可用性を再計算してみます。その結果、5 秒以内にハムレットという結果を返したのは 80 % で、18 % は 5 秒以上かかり、1 % はタイムアウトに、残り 1 % はエラーとなっていました。つまり、可用性の定義上、20 % ものクエリが完全に失敗に終わっていたのです。

事業目標に即した可用性を設定する

ショックから立ち直った Dave は素朴な疑問を抱きます。「なぜ 5 秒以内に 100 % の結果を返せないのだろうか?」

最初に思いつく理由は、停電やファイバーが切れたといった、ありきたりのものばかりでした。約 1 時間後、ようやく Dave は、5 秒以内に 100 % クエリに応答することは到底無理なのだと認めるようになります。

「じゃあ、どの程度の可用性であれば提供できるのだろうか?」と Dave は考えます。

その質問に対し、Dave にさらなる質問を投げかけてみましょう。「事業目標を達成するために必要な可用性とは何なのか?」

Dave の目が輝きました。事業目標としているのは年間売上高 2,500 万ドルです。1 回のクエリにつき平均 0.01 ドルの売上げは立っています。(1 秒あたり 100 クエリ)×(年間 3,153 万 6,000 秒)×(成功率 80 %)×(1 クエリあたり 0.01 ドル)で計算すると、年間売上高は 2,523 万ドルとなります。つまり、失敗率が 20 % だとしても、売上目標は達成できるのです。

とはいえ、失敗率 20 % というのはちょっといただけません。売上目標が達成できそうだとしても、あまりいいユーザー エクスペリエンスとは言えませんし、その結果何らかの影響があるかもしれません。この状況を改善すべきでしょうか。もし改善するのであれば、可用性の目標はどうすべきでしょうか。

コストと利益の妥協点、機会費用を考える

エンジニアが 6 か月かけて問題を修復し、クエリの返答に 5 秒以上かかる率を 0.5 % まで低減できるとしましょう。この問題の修復に着手すべきかどうか、どうやって決めればよいのでしょうか。

まず、20 % の失敗率が製品のライフにおいてどの程度の売上損失につながるのか(リトライするのをやめてしまうユーザーがどの程度いるのか)、見積もってみましょう。問題の修復にかかるコストはだいたい把握できています。単純に、エラー率によって失われる売上げが問題修復にかかるコストを上回っているのであれば修復する、と決めてしまうことも可能です。

ただし、これは重要な要素を無視しています。問題修復における機会費用です。問題の修復にかかる時間を他に回せばエンジニアはどんなことができるのか、考えてみてください。

シェイクスピア サービスの検索結果の関連性を高める新しい検索アルゴリズムがあるとしましょう。そのアルゴリズムを導入すれば、可用性は変わらなくても検索トラフィックが 20 % 増加するかもしれません。こうしたトラフィックの増加で、可用性が低いことによる売上げの損失は簡単に相殺できる可能性があるのです。

SRE でよく言われていることに、「必要とされるだけ可用性が高くなるようにシステムを設計せよ。ただし、それ以上のシステムは必要ない」という言葉があります。Google ではシステム設計時に、特定の MTBF や MTTR といった数値ではなく、(99.9 % というような)可用性を目標値として定めます。この可用性が達成できれば、今度は MTBF よりも MTTR のほうに重点を置き、迅速に修復を行えるような運用の形態に最適化します。失敗は避けられないものであり、「希望は戦略ではない」ことを認めるのです。

ほとんどの場合、SRE はユーザーにとって明らかに影響のある大きな問題を数分で軽減させることができます。そのため、Google のエンジニア チームは、迅速な開発と高可用性を両立させているという評判を得ているのです。

可用性と開発速度の妥協点は、最終的には事業側で決めることです。製品に対する可用性を正確に定義することで、本質的な議論ができ、満足のいく選択が可能になるのです。

注 : Google Cloud Next '17 開催まで 1 か月余りとなりました。Google Cloud の SVP である Diane Greene や、Google の CEO である Sundar Pichai、その他著名人らによる基調講演やコード ラボ、認証プログラム、さらには 200 以上ものテクニカル セッションにぜひご登録ください。ちなみに今回のイベントでは、Google の SRE や開発のエキスパートとイベント参加者が交流できるような専用の場を初めて設けています。


* この投稿は米国時間 1 月 26 日、Customer Reliability Engineers である AJ Ross、Matt Brown、Adrian Hilton と、Director of Customer Reliability Engineering である Dave Rensin によって投稿されたもの(投稿はこちら)の抄訳です。

稼働率を計算するときに使われるMTTR(Mean Time Ti Repair)を日本語で言うとなんというか。 ※漢字6文字で答えなさい。?

MTTRは、Mean Time To Repairの略で、平均復旧時間のこと。

MTTRの計算式は?

平均修理時間(MTTR) = 故障時間 / 故障件数 故障件数で割って算出します。

MTBFの正式名称は?

MTBFとは、Mean Time Between Failureの略称です。 日本語で平均故障間隔を意味し、システムや機器の信頼性を表す指標となる数値です。 MTBFが表すのはシステムや機器が故障するまでの平均値ですが、言い換えれば連続稼動可能な時間の平均値を表しているとも言えます。

MTTR 何の略?

MTTRとはMean Time To Repair(Recovery)のです。 日本語では平均修理時間と表現され、故障から復旧までにかかった時間の平均を指します。 システムや機器の保守性を示す指標のひとつです。