【コラム】

システムの評価、できてますか?

9 Webサーバの信頼性を計算したい! - 信頼性と「バスタブ」のいろいろ

鶴田展之  [2007/02/14]

信頼性の指標についていろいろ学んだり、実際にデータをとって評価していくと、たいていのキカイは一様にあるパターンで故障が発生することがわかってくる。機械製品のライフサイクルを3つに分けて考えてみよう。まず、製造・出荷されてからしばらくの間は、いわゆる「初期不良」が多く発生する「初期故障期間」だ。初期不良品が振るい落とされた後残った正常な機械は、ごく稀に故障する以外は問題なく動き続ける。この期間が「偶発故障期間」である。そして、設計上耐えられる年数を経過すると「摩耗故障期間」に入り、だんだん故障が増えてくる。このように、機械の故障率のグラフはお風呂のバスタブによく似た形になるため、一般に「バスタブ曲線」と呼ばれている。

もちろん、どんな機械でも、出荷から廃棄まで一律に壊れない方が良いに決まっている。しかし現実はそんなに甘くない。人間がやることに完璧など有り得ないのだから、基本的に故障率がバスタブ曲線を描くことは今後もどんな機械でも変わらないだろう。肝心なのは、バスタブ曲線の形から、その機械が優れているかどうかを判断することだ。

理想的には、まず少ない初期不良件数、短い初期故障期間で、安定した偶発故障期間に移行すること。そして、偶発故障期間の故障率が長期に渡ってなだらかな下降線を描くことである。さらに、設計上の耐用年数より前に摩耗故障期間の上昇カーブを描かないことも重要だろう。

摩耗故障期間に入った後の故障に関しては、機械の用途や特性によっていろいろな判断が有り得るだろう。

例えば車やバイクの世界では、「国産車は寿命が来ると全体が一気に壊れるが、欧州車は順番にいろいろな部品が壊れる」なんていう話をよく耳にする。で、この後には「だから国産車はすぐ乗り換えの使い捨て、欧州車は長く大事に乗る人が多い」とか、「全てのパーツの品質が一定している国産車はエライ」といった、それぞれの自慢話が続くのがならわしである。

実際に定量的な評価に基づいた話ではなくあくまでも「神話」にすぎないのだが、まあ機械の寿命に関してもいろいろな立場の人がいて、いろいろなことを期待するということだ。

閑話休題。

コンピュータシステムの信頼性というのは、それ単体で完結する「冷蔵庫」や「掃除機」のような家電製品と同じように評価することはできない。なぜならば、現代のコンピュータシステムは複数の機械がネットワークその他様々なインタフェースによって接続され、相互に依存しあってシステムとして成り立っているからである。

例えば下図のようにWebサーバとデータベースサーバが連携するシステムを考えてみよう。

このシステムでは、Webサーバとデータベースサーバのどちらが故障しても、システム全体としての機能を一切果たせなくなる。小学校の理科で習った豆電球と電池の繋ぎ方、「直列」と「並列」を思い出してみよう。このシステムのWebサーバとデータベースサーバは、「直列」に繋げられた豆電球と同じである。

直列の接続の場合、ハブやルータ等の機器を無視したとして、システム全体の故障率は以下の数式で求められる。

全体の故障率 = 1 - (1 - Webサーバの故障率) × (1 - データベースサーバの故障率)

仮にWebサーバの故障率が0.1、データベースサーバの故障率が0.05だった場合、全体の故障率は以下の通りだ。

1 - (1 - 0.1) × (1 - 0.05) = 0.145

つまり、直列で接続されるシステムでは、システムを構成する要素が増えれば増える程、信頼性は低下してしまうわけだ。そこで、信頼性をアップするために「並列」の構成を考えてみる。以下の例は、直列の構成からWebサーバを二重化したものである(便宜上ロードバランサの故障率は0とする)。

並列に構成された場合、どちらかが動いていればサービスが止まることは無い。この例では、2台のWebサーバが相互に補完しあうため、Webサーバ全体の故障率は以下の数式で計算できる。

全体の故障率 = WebサーバAの故障率 × WebサーバBの故障率

実際に値を代入して計算してみよう。

0.1 × 0.1 = 0.01

故障率は1/10まで飛躍的に下げられることがわかるだろう。データベースサーバは直列に接続されたままだが、Webサーバの故障率が1/10になったことで、システム全体の故障率も大幅に引き下げられる。

1 - (1 - 0.01) × (1 - 0.05) = 0.0595

信頼性を定量的に評価する目的は、結局のところ最終的にシステムの安定稼働を確保することである。機器個別の信頼性計算を行うことで優れたモノを選定することも大切だが、冗長化等の工夫でお手軽に信頼性を確保できる場合もある。また、計算上の信頼性と実際の故障率との比較から、システム構成上の隠れた問題点があぶり出されるケースもある。システム評価のひとつの軸として、信頼性計算の手法は極めて重要なものなのである。

    新着記事

    特設サイトの情報

    求人情報

    人気記事

    一覧

    イチオシ記事

    新着記事

    特別企画

    一覧

    転職ノウハウ

    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A

    転職に必要な情報が収集できます

    スカウト転職する

    企業からアプローチのメッセージが届きます。