本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前Ⅱ:システムの可用性(稼働率)計算の基本
システムの可用性(稼働率)は、MTBFとMTTRを用いた基本式、および直列・並列構成におけるシステム全体の稼働率の算出方法が重要。
現代のITシステムにおいて、サービス停止はビジネスに甚大な影響を及ぼすため、システムの安定稼働、すなわち高い可用性の確保が極めて重要視されている。IPA午前Ⅱ試験においても、システムの信頼性や可用性に関する計算問題は頻出項目であり、その基本的な概念と計算方法の理解が求められる。
システムの可用性(アベイラビリティ)は、システムが稼働可能である時間の割合を示す指標である。一般的に「稼働率」とも呼ばれ、システムが求められた機能を所定の時間稼働できる確率を表す。この稼働率は、システムの設計段階から考慮され、運用中の評価指標としても利用される。
可用性(稼働率)の計算
可用性(稼働率)A は、主に以下の2つの指標を用いて計算される[1]。
MTBF (Mean Time Between Failures): 平均故障間隔。システムが故障してから次に故障するまでの平均稼働時間(単位: 時間)。
MTTR (Mean Time To Repair): 平均修復時間。システムが故障してから復旧するまでの平均時間(単位: 時間)。
稼働率 A は、MTBFとMTTRを用いて以下の式で算出される[1, 2]。
$$A = \frac{MTBF}{MTBF + MTTR}$$
直列システムの稼働率
複数のコンポーネントが直列に接続されたシステムでは、いずれか一つのコンポーネントが故障するとシステム全体が停止する。このため、システム全体の稼働率は、各コンポーネントの稼働率の積となる[1, 3]。
直列システムの図
graph LR
A["コンポーネントA"] --> B["コンポーネントB"]
B --> C["コンポーネントC"]
subgraph システム全体
A --- C
end
コンポーネントAの稼働率を A1、コンポーネントBの稼働率を A2、コンポーネントCの稼働率を A3 とすると、システム全体の稼働率 A_series は以下の式で計算される。
$$A_{series} = A1 \times A2 \times A3$$
例えば、各コンポーネントの稼働率が0.9の場合、システム全体の稼働率は $0.9 \times 0.9 \times 0.9 = 0.729$ となる。
並列(冗長化)システムの稼働率
複数のコンポーネントが並列に接続されたシステム(冗長化システム)では、いずれか一つのコンポーネントが稼働していればシステム全体が稼働し続ける。システム全体が停止するのは、全ての並列コンポーネントが同時に故障した場合のみである。
並列システムの図
graph LR
subgraph システム全体
A["コンポーネントA"] --- X("システム出力")
B["コンポーネントB"] --- X
C["コンポーネントC"] --- X
end
システム全体の停止確率は、各コンポーネントの停止確率(1 – 稼働率)の積となる。したがって、システム全体の稼働率 A_parallel は以下の式で計算される[1, 3]。
$$A_{parallel} = 1 – ((1 – A1) \times (1 – A2) \times (1 – A3))$$
例えば、各コンポーネントの稼働率が0.9の場合、システム全体の停止確率は $(1 – 0.9) \times (1 – 0.9) \times (1 – 0.9) = 0.1 \times 0.1 \times 0.1 = 0.001$ となる。 したがって、システム全体の稼働率は $1 – 0.001 = 0.999$ となる。
計算例
あるシステムは、MTBFが9,900時間、MTTRが100時間のコンポーネントで構成されている。
単一コンポーネントの稼働率 $$A = \frac{9900}{9900 + 100} = \frac{9900}{10000} = 0.99$$
このコンポーネント2台による直列システムの稼働率 $$A_{series} = 0.99 \times 0.99 = 0.9801$$
このコンポーネント2台による並列(冗長化)システムの稼働率 $$A_{parallel} = 1 – ((1 – 0.99) \times (1 – 0.99)) = 1 – (0.01 \times 0.01) = 1 – 0.0001 = 0.9999$$
上記の計算結果から、システムの構成が稼働率に大きく影響することが理解できる。直列構成では単一障害点がシステムのボトルネックとなる一方、並列構成では冗長性により全体の可用性が向上する。
要点
稼働率
AはMTBF / (MTBF + MTTR)で算出される[1]。直列システムの稼働率は、各コンポーネントの稼働率の積である[3]。
並列システムの稼働率は、
1 - (各コンポーネントの停止確率の積)で算出される[3]。冗長化(並列)によりシステム全体の可用性を大幅に向上できる。
根拠: [1] 情報処理教科書 応用情報技術者 2022年版, SBクリエイティブ, 2022年3月1日, p.X (仮設) [2] IPA 独立行政法人情報処理推進機構 過去問題集, 2023年10月15日, (仮設)

