目的
この記事では、応用情報技術者試験の出題分野であるシステム評価指標に関する覚書きを列挙する。
システムの性能指標
システムの評価指標とは、性能、信頼性、経済性などの総合的な評価指標のこと。
以下、性能についての指標や手法を示す。
-
レスポンスタイム
システムに要求してから応答(レスポンス)があるまでの時間で、早いレスポンスであることを表す指標。また、システムに要求する準備を開始した時間から応答が完了するまでの時間をターンアラウンドタイムという。
-
例:下記の表の多重度が \(1\) となるジョブ \(A\) ~ \(C\) において、 \(C\) のターンアラウンドタイムを求める。
ジョブ 到着時間 実行時間 \(A\) \(0\) 秒 \(5\) 秒 \(B\) \(2\) 秒 \(6\) 秒 \(C\) \(4\) 秒 \(3\) 秒 \(A\)、\(B\) の到着から実行完了までが \(5 + 6\) \(= 11\) 秒、\(C\) の到着時間が \(= 4\) 秒。
よって、C の待機時間は \(11 - 4\) \(= 7\) 秒、これに \(C\) 実行時間 \(3\) 秒を加えて、\(10\) 秒となる。
-
-
スループット
単位時間あたりの処理可能数で処理性能を表す指標。 -
ベンチマーク
処理速度を計測するための指標で、計測用プログラムの実行結果を基に性能を比較する。- 代表的なベンチマーク
- TPC-C:TPC(トランザクション処理性能評議会)が作成しているオンライントランザクション処理のベンチマーク。
- SPECint:SPEC(標準性能評価法人)が作成している整数演算評価のベンチマーク。
- SPECfp:SPEC(標準性能評価法人)が作成している浮動小数点演算評価のベンチマーク。
- 代表的なベンチマーク
-
モニタリング 実際にシステムを稼働させて、性能を測定する手法。
キャパシティプランニング
キャパシティプランニングとは、ニーズを満たすために必要なシステムリソースの処理能力や数量などを見積もり、最適なシステム構成を計画すること。
- 主な手順
- ワークロード情報の収集
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} \]
信頼性の計算
信頼性と稼働率の基本的な計算方法。
-
並列システム
機器を並列にしたシステムを指し、少なくとも一つ稼働していれば不稼働(故障状態)とならないため、稼働率は高くなる。二つの機器を並列にしたシステムがあったとき、稼働率をそれぞれ \(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) の稼働率が高くなる。
参考文献
- 瀬戸 美月 (\(2020\)) 『徹底攻略 応用情報技術者教科書』株式会社インプレス