概要
情報技術の基礎として理解しておきたい システム評価指標 について、性能指標、キャパシティプランニング、RASIS、信頼性指標、稼働率計算を整理する。
処理時間と件数を分けて性能を読み、修復時間や共通電源を含めた稼働率を計算する。装置の台数ではなく、どの組合せで必要な機能を提供できるかに沿って評価する。
この記事の構成
- システムの性能指標
システムの評価指標とは性能、信頼性、経済性などの総合的な評価指標のこと。 - キャパシティプランニング
キャパシティプランニングとはニーズを満たすために必要なシステムリソースの処理能力や数量などを見積もり、 最適なシステム構成を計画すること。 - RASIS(信頼性の評価項目)
RASIS(信頼性の評価項目)の意味と要点を具体例から整理。 - 信頼性の指標
MTTRを短縮する数値例で故障の減少と復旧の高速化を区別。 - 信頼性の計算
共通電源と構成の違いを含め、稼働率の式に必要な前提を確認。
システムの性能指標
システムの評価指標とは性能、信頼性、経済性などの総合的な評価指標のこと。
以下性能についての指標や手法を示す。
-
レスポンスタイム
システムへ要求を送ってから利用者が応答を受け取り始める、または必要な応答を受け取るまでの時間。どこを応答完了とするかは対象システムの定義に合わせる。また、ジョブをシステムへ投入してから処理が完了するまでの時間をターンアラウンドタイムという。
-
例:下記の表の多重度が \(1\) となるジョブ \(A\) ~ \(C\) において、 \(C\) のターンアラウンドタイムを求める。
ジョブ 到着時間 実行時間 \(A\) \(0\) 秒 \(5\) 秒 \(B\) \(2\) 秒 \(6\) 秒 \(C\) \(4\) 秒 \(3\) 秒 到着順に処理すると、\(A\) は \(0\)~\(5\) 秒、\(B\) は \(5\)~\(11\) 秒、\(C\) は \(11\)~\(14\) 秒に実行される。
\(C\) は \(4\) 秒に到着しているため、待機時間は \(11 - 4 = 7\) 秒となる。これに実行時間 \(3\) 秒を加え、ターンアラウンドタイムは \(10\) 秒となる。
-
-
スループット
単位時間あたりの処理可能数で処理性能を表す指標。 -
ベンチマーク
定められたワークロードや手順でシステムを測定し、その結果から性能を比較する試験または評価方法。異なる条件の結果を比較しないよう、構成、データ量、測定ルールをそろえる必要がある。- 代表的なベンチマーク
- TPC-C:TPC(トランザクション処理性能評議会)が作成しているオンライントランザクション処理のベンチマーク。
- SPEC CPU:SPEC(Standard Performance Evaluation Corporation)が提供する整数演算や浮動小数点演算を含むCPU性能のベンチマークスイート。
※SPECint、SPECfpは旧世代の指標名で、現行スイートでは整数・浮動小数点を速度やスループット別の指標で評価。
- 代表的なベンチマーク
-
モニタリング 実際にシステムを稼働させて性能を測定する手法。
-
処理能力が増えても一件の応答が速くなるとは限らない
一件に1秒かかる処理を1台で順に実行すれば最大毎秒1件、独立した2台に振り分けられれば最大毎秒2件処理できる。待ちがない一件の処理時間はどちらも1秒のままである。増えたのは単位時間に完了できる件数、すなわちスループットである。混雑時には待ち列が短くなって応答時間が改善する場合もあるが、処理そのものの短縮とは分けて考える。測定時には一件の時間と処理件数に加えて同時利用数をそろえる必要がある。
キャパシティプランニング
キャパシティプランニングとはニーズを満たすために必要なシステムリソースの処理能力や数量などを見積もり、最適なシステム構成を計画すること。
- 主な手順
- ワークロード情報の収集
CPU利用率などの測定を行い、コンピュータ資源の利用状況や負荷状況(ワークロード)を収集。 - サイジング
システムに必要な規模や性能を見通してサーバー数やCPU性能、ストレージ容量などの構成要素を用意または見積もる。 - 評価/チューニング
サイジングでの見積もりが適切かどうか、テスト環境で評価しチューニングを繰り返す。
※TPCやSPEC等のベンチマークを参考にする場合もある。
- ワークロード情報の収集
RASIS(信頼性の評価項目)
システムの信頼性を総合評価する基準として、以下 \(5\) つの評価項目を基に信頼性を判断するRASISという概念がある。
- Reliability(信頼性)
故障しにくさや要求された機能を正常に果たし続ける度合いを表し、指標として次項のMTBFや故障率が用いられる。 - Availability(可用性)
稼働している割合の高さを表し、指標として次項の稼働率が用いられる。 - Serviceability(保守性)
障害発生時のメンテナンスのしやすさ、復旧の速さを表し、指標として次項のMTTRが用いられる。 - Integrity(保全性)
データが不正に変更、破壊、消失されず、一貫性や完全性を保てる度合いを表す。 - Security(安全性/機密性)
情報漏えいや不正侵入などを防ぎ、システムや情報を保護する度合いを表す。
信頼性の指標
代表的な信頼性指標:
-
MTBF(Mean Time Between Failure:平均故障間隔)
故障復旧後から次の故障までにかかる平均時間。 -
MTTR(Mean Time To Repair:平均復旧時間)
故障したシステムの復旧にかかる平均時間。 -
稼働率
ある特定の時間にシステムが稼働している確率。\[ \text{稼働率} = \frac{MTBF}{MTBF + MTTR} \] -
不稼働率
ある時点でシステムが稼働していない確率。\[ \text{不稼働率} = 1 - \text{稼働率} \] -
故障率
正常に稼働している機器が単位時間内に故障する割合を表す。
故障率が時間によらず一定で、故障時間が指数分布に従うと仮定した場合は、次の関係を用いることができる。\[ \text{故障率} = \frac{1}{MTBF} \]
-
故障しにくくする以外にも稼働率を上げる方法がある
平均故障間隔MTBFが99時間、平均修復時間MTTRが1時間なら、稼働率は \(99/(99+1)=0.99\)、99%になる。故障の頻度を変えず、交換手順の整備などでMTTRを0.1時間に短縮できれば、\(99/(99+0.1)\fallingdotseq0.99899\)、約99.899%になる。この改善では装置が故障する間隔は変わっていない。故障を減らす活動と故障から速く戻す活動の両方が稼働率に寄与する。
信頼性の計算
信頼性と稼働率の基本的な計算方法。
-
並列システム
機器を並列にしたシステムを指し、少なくとも一つ稼働していれば不稼働(故障状態)とならないため、稼働率は高くなる。
以下では各機器の故障が互いに独立しているものと仮定する。二つの機器を並列にしたシステムがあったとき、稼働率をそれぞれ \(a\)、\(b\) とする。
このときの不稼働率はそれぞれ \(1 - a\) と \(1 - b\) となり、稼働率は以下の計算で求められる。
\[ \text{稼働率} = 1 - (1 - a)(1 - b) \] -
直列システム
機器を直列にしたシステムを指し、一つでも不稼働(故障状態)であれば稼働しないため、稼働率は低くなる。以下では各機器の故障が互いに独立しているものと仮定する。
それぞれの機器の稼働率を \(a\)、\(b\) としたとき、稼働率は以下の計算で求められる。
\[ \text{稼働率} = a \times b \] -
並列と直列を組み合わせたシステム
次の \(2\) 種類に分類される。- (*1) 直列システム \(A\)、\(B\) と直列システム \(C\) が並列。
- (*2) 直列システム \(A\) と並列システム \(B\)、\(C\) が直列。
このときそれぞれの稼働率を \(a\)、\(b\)、\(c\) とすると (*1)、(*2) の稼働率は次で求められる。
-
(*1) の稼働率
\[ 1 - (1 - ab)(1 - c) \] -
(*2) の稼働率
\[ a\{1 - (1 - b)(1 - c)\} \] -
例:上記 (*1)、(*2) の稼働率が \(0\) より大きく\(1\) 未満である場合、どちらの稼働率が高くなるか?
→ (*1) - (*2)の差を求める。\[ = 1 - (1 - ab)(1 - c) - a\{1 - (1 - b)(1 - c)\} \]\[ = c - ac \]\[ = c(1 - a) \]ここで\(a\)、\(c\) の稼働率は \(0\) より大きく\(1\) 未満であることが前提。
よって、\(1 - a > 0\)、\(c > 0\) となり、差はプラスであるため、(*2)より(*1) の稼働率が高くなる。
-
独立した故障という前提を外すと、計算結果が変わる
各装置の稼働率を0.99とし、故障が独立しているなら、2台とも必要な直列構成は \(0.99^2=0.9801\)、どちらか一台で動ける並列構成は \(1-(1-0.99)^2=0.9999\) になる。ただし、2台が共通の電源に依存し、その電源の稼働率も0.99なら、電源故障で両方が使えなくなる。電源と装置の故障が独立で、切替えも確実にできると単純化すると、全体は \(0.99\times0.9999=0.989901\) である。並列部分の99.99%だけをシステム全体の稼働率として扱うことはできない。
冗長化の評価では装置の台数だけでなく、電源・通信経路・設置場所など共通する依存先を確認する必要がある。
-
同じ3台でも必要な条件の組合せで稼働率が変わる
A、B、Cの稼働率をすべて0.9とし、独立に故障するとする。「AとBが両方動く、またはCが動く」構成と「Aが動き、さらにBかCのどちらかが動く」構成を比べる。動作する条件 稼働率 (AかつB) またはC \(1-(1-0.9^2)(1-0.9)=0.981\) Aかつ(BまたはC) \(0.9\{1-(1-0.9)^2\}=0.891\) 後者ではAが止まると、BとCが動いていても使えない。式を先に選ぶより「どの組合せなら必要な機能を提供できるか」を整理すると、直列と並列の取り違えを防げる。
まとめ
- レスポンスタイムは要求から定義した応答点まで、ターンアラウンドタイムは処理完了までの時間を表し、スループットは単位時間当たりの処理量を表す。
- キャパシティプランニングでは将来の負荷や利用量を見積もり、必要な性能と容量を満たすシステム構成を計画する。
- 信頼性は故障しにくさ、可用性は利用可能な状態を保つ度合いで、RASISはこれらの評価観点を整理したもの。
- MTBFは故障までの平均時間、MTTRは修理にかかる平均時間で、稼働率の計算に使われる。
- 直列構成は全要素の稼働が必要で、並列構成は少なくとも一系統が稼働すればよいため、稼働率の求め方が異なる。
- MTTRの短縮でも稼働率は改善できる。直列・並列の式では独立性の前提を確認し、共通の電源や通信経路を計算から落とさない。
参考文献
- 瀬戸 美月 (\(2020\)) 『徹底攻略 応用情報技術者教科書』株式会社インプレス
- IBM - MTTRとMTBFの違いとは(日本語・信頼性指標の公式解説)
- NASA - Formulas:Inherent Availability and Reliability(英語・稼働率と信頼性の公的計算資料)
- Standard Performance Evaluation Corporation - SPEC CPU Benchmarks(英語・CPUベンチマークの公式資料)
- Transaction Processing Performance Council - TPC-C(英語・トランザクション性能評価の公式仕様)