変更要約: 初版
2.4性能評価と信頼性
FE/SGのレスポンス/スループット・稼働率の基礎を踏まえ、待ち行列理論(M/M/1モデル・利用率/平均待ち時間の計算)による性能見積り、直列・並列・混合構成の稼働率計算、MTBF/MTTR、RASIS、キャパシティ管理の考え方まで深掘りします。
「稼働率が高い」「レスポンスが速い」という定性的な理解だけでなく、応用情報技術者にはそれを数式で見積り、根拠を持って設計判断ができることが求められます。待ち行列理論による性能見積りと、直列・並列が混在する複雑な構成での稼働率計算は、午前問題でも実務でも避けて通れない計算です。
2.4.1待ち行列理論による性能見積り
- 待ち行列理論=窓口(サーバ)が1つ、到着がランダム、サービス時間もランダムという前提(M/M/1モデル)のもとで、待ち時間や行列の長さを見積る理論です。利用率(ρ、ロー)=到着率(λ)÷サービス率(μ)で求まり、窓口がどれだけ稼働で埋まっているかを表します。利用率が1(100%)に近づくほど、待ち時間は加速度的に増大します。
- M/M/1モデルでは、システム内の平均客数(待ち行列+サービス中)をL=ρ÷(1−ρ)で求められ、リトルの法則(L=λ×W)を使ってシステム内の平均滞在時間をW=L÷λとして導けます。この式が示す重要な性質は、利用率が1に近づくほど分母(1−ρ)が0に近づき、待ち時間が急激に(線形ではなく)悪化することです。窓口を70%稼働から90%稼働へ引き上げるような設計は、待ち時間の急増を招くリスクがあるため注意が必要です。
2.4.2直列・並列・混合構成の稼働率計算
| 構成 | 稼働率の式 | 直感 |
|---|---|---|
| 直列 | 各装置の稼働率の**積** | 全て正常でなければ稼働しない=弱い方に引きずられる |
| 並列 | **1−(各装置の非稼働率の積)** | 1つでも正常なら稼働する=冗長化で底上げ |
| 混合 | 並列部分を先に1つの稼働率へ合成してから、直列として掛け合わせる |
「利用率ρ=到着率÷サービス率」「平均系内人数L=ρ÷(1−ρ)」「直列の稼働率=積、並列の稼働率=1−(非稼働率の積)」「混合構成はまず並列部分を1つの稼働率に合成してから直列計算」が最頻出です。MTBF÷(MTBF+MTTR)=稼働率の変形計算(MTBF・MTTR・稼働率のどれか2つから残り1つを逆算)も繰り返し出ます。
待ち行列理論の計算を具体的にたどってみましょう。窓口処理システムで、リクエストの到着率λ=毎分6件、サービス率μ=毎分8件(1件あたり平均7.5秒で処理できる能力)とします。まず利用率ρ=λ÷μ=6÷8=0.75(75%)です。次にシステム内平均客数L=ρ÷(1−ρ)=0.75÷(1−0.75)=0.75÷0.25=3件(待ち行列+処理中の合計)となり、リトルの法則からシステム内平均滞在時間W=L÷λ=3÷6=0.5分(30秒)と求まります。もし到着率が毎分7件に増えると、ρ=7÷8=0.875となり、L=0.875÷0.125=7件へ急増し、Wも大きく悪化します。利用率が0.75から0.875へ約17%増えただけで平均系内人数は3件から7件へ2倍以上に膨らむという計算結果は、利用率が高い状態での余裕のない運用がいかに危険かを定量的に示しています。次に稼働率の混合計算です。あるシステムが、稼働率0.9の装置を2台並列接続した部分(少なくとも一方が動けば稼働)と、稼働率0.95の装置1台を直列に接続した構成だとします。まず並列部分の稼働率を求めると、1−(1−0.9)×(1−0.9)=1−0.1×0.1=1−0.01=0.99です。この並列部分を1つの装置(稼働率0.99)とみなし、直列の装置(稼働率0.95)と掛け合わせると、システム全体の稼働率=0.99×0.95=0.9405(約94.05%)となります。混合構成では、まず並列部分を1つの稼働率へ合成してから、直列部分と掛け合わせるという手順を踏むことが計算の要点です。
ひっかけ: 「利用率が50%から75%に増えても、待ち時間は利用率と同じ比率でしか増えない」は誤りです。L=ρ÷(1−ρ)の式が示す通り、利用率が1に近づくほど待ち時間は線形ではなく急激に悪化します。また「混合構成の稼働率は、並列部分と直列部分をそれぞれ別々に(1−非稼働率の積)で求めて足し合わせる」も誤り=並列部分を1つの稼働率へ先に合成してから、直列部分と掛け合わせるのが正しい手順です(足し算ではなく掛け算)。「MTBFが向上すれば、MTTRを一切改善しなくても稼働率は理論上100%に達する」も誤り=稼働率=MTBF÷(MTBF+MTTR)の式では、MTTRが0でない限り稼働率は100%未満に留まります(MTBFをいくら伸ばしても漸近的に近づくのみ)。
2.4.3RASISとキャパシティ管理
- RASIS(信頼性/可用性/保守性/保全性/安全性)は個別に測るだけでなく、トレードオフの関係にあることを理解しておく必要があります。例えば可用性を高めるための冗長化(並列構成)はコストと構成の複雑さを増し、保守性(改修のしやすさ)を下げる場合があります。RASISの各項目を独立に最大化しようとするのではなく、システムの要件に応じてバランスを取るのが設計の本質です。
- キャパシティ管理=将来の負荷増加を見込んで、システムの処理能力(CPU・メモリ・ストレージ・帯域)が要件を満たし続けられるよう継続的に監視・計画する活動です。過去の利用率の推移から将来の需要を予測し、待ち行列理論の考え方(利用率が高まるほど待ち時間が急激に悪化する)を踏まえて、利用率が危険域に達する前に増強のタイミングを判断することが実務での要点です。
2.4.4この節のまとめ
- 待ち行列理論(M/M/1)=利用率ρ=λ÷μ、平均系内人数L=ρ÷(1−ρ)。利用率が1に近づくほど待ち時間は急激に悪化する
- 直列稼働率=積・並列稼働率=1−(非稼働率の積)。混合構成は並列部分を先に合成してから直列計算
- RASISの各項目はトレードオフ関係。キャパシティ管理は利用率が危険域に達する前の増強判断が要点
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. あるサーバへのリクエスト到着率が毎分6件、サービス率が毎分8件のM/M/1モデルにおいて、システム内の平均滞在時間(リトルの法則W=L÷λ、L=ρ÷(1−ρ))はどれか。
Q2. 稼働率0.9の装置2台を並列接続した部分に、稼働率0.95の装置1台を直列接続したシステム全体の稼働率はどれか。
Q3. 可用性を高めるために装置を並列冗長化したところ、構成が複雑になり保守性(改修のしやすさ)が低下した。この事例が示すRASISの各項目の関係として最も適切なのはどれか。

