Instiq
第2章 · コンピュータシステム·v1.0.0·更新 2026/7/9·読了目安 約14分

変更要約: 初版

2.4性能と信頼性

この節の要点

システムの応答速度を表すレスポンスタイムターンアラウンドタイムと処理能力を表すスループット、それらを測るベンチマークを学びます。さらに信頼性を数値化する稼働率(直列・並列接続の計算)とMTBFMTTR、そしてシステムに求められる信頼性の総合的な観点であるRASIS、障害時の設計思想(フォールトトレラントフェールセーフフェールソフト)まで扱います。

「速いシステム」と「信頼できるシステム」は、それぞれ別々の指標で測れます。速さは利用者の体感満足度に直結し、信頼性は障害発生時にどれだけ業務を継続できるかを左右します。両者を数値で語れるようになると、設計判断やSLA(サービス品質保証)の議論に根拠を持って参加できます。

2.4.1性能指標とベンチマーク

  • レスポンスタイム=処理を要求してから最初の応答が返るまでの時間。ターンアラウンドタイム=処理を要求してからすべての結果の出力が完了するまでの時間。オンライン処理では体感速度を左右するレスポンスタイムが、バッチ処理では全処理の完了時間を示すターンアラウンドタイムが重視される傾向があります。
  • スループット=単位時間あたりに処理できる仕事量(例:1秒あたりのトランザクション数)。ベンチマーク=標準化されたテストプログラムを実際に実行し、複数のシステム・構成の性能を客観的に比較する手法です。カタログスペック(クロック周波数等)だけでは実際のワークロードでの性能を正しく評価できないため、ベンチマーク測定が実務で重視されます。

2.4.2稼働率とMTBF/MTTR

  • 稼働率=システムが正常に稼働している時間の割合。直列接続(両方の装置が正常な場合のみ全体が稼働)の稼働率は各装置の稼働率の積並列接続(少なくとも一方が正常なら全体が稼働)の稼働率は1−(1−各稼働率の積)で求めます。並列化(冗長化)は稼働率を押し上げる代表的な手法です。
  • MTBF(Mean Time Between Failures、平均故障間隔)=故障から次の故障までの平均稼働時間。値が大きいほど故障しにくいことを示します。MTTR(Mean Time To Repair、平均修理時間)=故障してから修理が完了するまでの平均時間。値が小さいほど早く復旧できることを示します。稼働率はMTBF÷(MTBF+MTTR)でも求められます。
試験ポイント

「直列の稼働率=積、並列の稼働率=1−(1−稼働率の積)」「稼働率=MTBF÷(MTBF+MTTR)」「MTBFは平均故障間隔(大きいほど良い)・MTTRは平均修理時間(小さいほど良い)」が最頻出の計算パターンです。レスポンスタイムとターンアラウンドタイムの取り違えも定番のひっかけです。

稼働率の計算を具体的な数値でたどってみましょう。稼働率0.9の装置Aと稼働率0.8の装置Bを直列接続した場合、両方が同時に正常でなければシステム全体は稼働しないため、全体の稼働率は0.9×0.8=0.72になります。同じ2台を並列接続(どちらか一方でも正常なら稼働)にすると、全体が停止するのは両方同時に故障したときだけなので、全体の稼働率は1−(1−0.9)×(1−0.8)=1−0.1×0.2=1−0.02=0.98と大きく向上します。この結果から、信頼性を高めたいなら、直列に機器を増やすのではなく重要な箇所を並列化(冗長化)することが有効だと分かります。ただし、直列に装置を増やせば稼働率は必ず下がる(掛け算の対象が増えるため)一方、並列に増やせば稼働率は上がるという原則を、機能追加のたびに機械的に当てはめるのではなく、「その装置がシステム全体に対して直列的に効くのか、並列的に効くのか」を見極めて判断することが実務では重要です。稼働率はMTBFとMTTRからも求められます。あるサーバのMTBFが950時間、MTTRが50時間だとすると、稼働率=950÷(950+50)=950÷1000=0.95となります。この式から、稼働率を上げるには故障間隔を延ばす(MTBFを増やす)ことに加え、修理時間を短縮する(MTTRを減らす)ことも同じくらい有効だと分かります。監視体制の強化やスペア部品の常備によってMTTRを短縮する取り組みは、MTBFの改善(部品自体の信頼性向上)と並ぶ現実的な稼働率向上策です。

2.4.3RASISと障害時の設計思想

頭文字項目意味
RReliability(信頼性)故障のしにくさ(MTBF等で評価)
AAvailability(可用性)稼働し続けられる度合い(稼働率で評価)
SServiceability(保守性)故障時の直しやすさ(MTTR等で評価)
IIntegrity(保全性)データの正確さ・矛盾の無さを保つ度合い
SSecurity(安全性)不正アクセスや情報漏えいへの耐性
  • フォールトトレラント=構成要素が故障しても、冗長化された予備系に切り替える等してシステム全体の機能を維持し続ける設計思想(例:電源の二重化、ディスクのミラーリング)。故障そのものを許容しつつ、外部からは正常に見え続けることを目指します。
  • フェールセーフ=故障が発生した際に、被害を最小化する安全な状態へシステムを移行させる設計思想(例:信号機が故障すると全て赤になり、青同士が同時に点灯する危険な状態を避ける)。フェールソフト=故障した部分を切り離し、機能を縮小してでも運転を継続する設計思想(例:一部エンジンが故障した飛行機が残りのエンジンで飛行を続ける、縮退運転)。
注意

ひっかけ: 「レスポンスタイムとターンアラウンドタイムは同じ意味である」は誤りです。レスポンスタイムは最初の応答まで、ターンアラウンドタイムは全結果の出力完了までの時間で異なります。また「フェールセーフとフェールソフトは同じ概念」も誤り=フェールセーフは安全な状態への移行(機能停止も辞さない)、フェールソフトは機能を縮小してでも運転継続を目指す点で異なります。「直列に機器を追加すれば稼働率は上がる」も誤り=直列接続を増やすと稼働率は積の分だけ下がります

稼働率・MTBF/MTTR・フォールトトレラントの図。
性能と信頼性の指標

2.4.4この節のまとめ

  • レスポンスタイム=最初の応答までターンアラウンドタイム=全結果完了までスループットは単位時間の処理量・ベンチマークで客観比較
  • 直列稼働率=積並列稼働率=1−(1−積)稼働率=MTBF÷(MTBF+MTTR)RASIS=信頼性/可用性/保守性/保全性/安全性
  • フォールトトレラント=冗長化で機能維持・フェールセーフ=安全な状態へ・フェールソフト=縮退してでも継続

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 稼働率0.9の装置と稼働率0.8の装置を直列に接続したシステム全体の稼働率はどれか。

Q2. あるサーバのMTBFが920時間、MTTRが80時間である。このサーバの稼働率はどれか。

Q3. 一部のエンジンが故障した飛行機が、残りのエンジンだけで機能を縮小しながら飛行を継続した。このような設計思想はどれか。

理解度を確認第2章「コンピュータシステム」の問題を解く