システムの評価指標

snack
snack

今回はシステムの評価指標についてっす。つまり、どうやってシステムを評価するかってことっすね。

ボキタロー
ボキタロー

それはエンジニアの人に任せましょう。

snack
snack

エンジニアから「このシステムの評価指標はこんな感じです」と説明されてもその意味が分からないと困るっすよね?

ボキタロー
ボキタロー

たしかに、それは困るね。せめて会話が通じるくらいの知識はもっておきたいかな。

snack
snack

システムは性能、信頼性、経済性の3つの指標によって評価されるっす。それじゃあ、順番に見ていくっすよ。

目標・システムの性能,信頼性,経済性の考え方を理解する。
説明・システムの性能,信頼性,経済性を測るための評価指標について理解する。
システムの評価指標の概要

システムの性能の評価

システムの性能を評価するための指標としては、主にスループットレスポンスタイム(応答時間)があります。

スループットとは、一定時間内に処理できる仕事量のことをいいますが、Webシステムなら1秒間に処理できるリクエスト数、ネットワークなら1秒間に転送できるデータ量、工場の生産ラインなら1時間あたりに生産できる製品数など、さまざまなものがあり単一の指標はありません。

またレスポンスタイムとは、システムの処理を行った時の最初の反応が返ってくるまでの時間のことを指し、この速度が速いほど性能が高いと評価されます。

なお、レスポンスタイムと似たものとしてターンアラウンドタイムがあります。レスポンスタイムが最初の反応が返ってくるまでの時間であるのに対して、ターンアラウンドタイムは全ての処理を終えて、その結果(出力)が返ってくるまでの時間を指します。

さらっと学習【ベンチマーク】

他と比較できるように統一された条件でシステムの性能を測定し、客観的に測るためのテストのことをベンチマーク(ベンチマークテスト)といいます。標準的なプログラムや特定のソフトウェアを実行するなどして計測します。

システムの信頼性の評価

システムの信頼性を表す指標(稼働率)

稼働率とは、システムの全運用時間に対する稼働時間の割合のことです。

snack
snack

要するに、システムがちゃんと動いている時間が全運用時間に対して何%か?ということっすね。

稼働率は、MTBF(平均故障間隔)MTTR(平均修復時間)によって判断されます。

MTBF(Mean Time Between Failures:平均故障間隔)

故障が発生してから次の故障が発生するまでの時間の平均です。したがって、MTBFが大きいほどシステムの信頼性は高いといえます。

snack
snack

つまり、ちゃんと稼働している時間の平均という意味っす。

MTBFは稼働時間の合計を故障回数で割ることによって求められます。

稼働時間合計600時間(300時間+200時間+100時間)/故障回数3回
MTBF 200時間

MTTR(Mean Time to Repair:平均修復時間)

故障が発生してから、システムが復旧するまでにかかる時間の平均です。したがって、MTTRが小さいほどシステムの信頼性は高いといえます。

snack
snack

つまり、システムが故障で停止している時間の平均という意味っす。

MTTRは故障時間の合計を故障回数で割ることによって求められます。

故障時間合計60時間(10時間+20時間+30時間)/故障回数3回
MTTR 20時間

稼働率の計算

稼働率は全運用時間に対する稼働時間の割合で計算できますが、MTBFとMTTRを使って次のように求めることもできます。

・稼働率=稼働時間(全運用時間ー故障時間)/全運用時間

・稼働率=MTBF/(MTBF+MTTR)

どちらの式を使うかは問題で与えられる情報によって変わります。

直列システムの稼働率

直列のシステムの場合、システム全体の稼働率は次の式で求められます。

システムの稼働率=装置Aの稼働率×装置Bの稼働率

例えば、装置Aの稼働率が0.9(90%)、装置Bの稼働率が0.8(80%)の場合のシステム全体の稼働率は次のようになります。

システムの稼働率
=装置Aの稼働率×装置Bの稼働率
=0.9×0.8
0.72

並列システムの稼働率

並列のシステムの場合、どちらか一方の装置が稼働していればシステム全体が停止することはありません。つまり、100%から装置Aと装置Bの両方が停止している割合を差し引いたものが全体の稼働率となります。

システムの稼働率
=1(100%)ー両方が停止する割合
=1ー(装置Aの不稼働率)×(装置Bの不稼働率)
1ー(1-装置Aの稼働率)×(1-装置Bの稼働率)

例えば、装置Aの稼働率が0.9(90%)、装置Bの稼働率が0.8(80%)の場合のシステム全体の稼働率は次のようになります。

1ー(1-0.9)×(1-0.8)
=1-0.1(装置Aの不稼働率)×0.2(装置Bの不稼働率)
=1-0.02(両方が停止する割合2%)
0.98

信頼性の設計

システムの信頼性は、「システムの構成1~代表的な処理形態と利用形態~」で学習したデュアルシステムデュプレックスシステムのようにシステムの構成によって向上させることができますが、そのためにはシステムの設計段階から信頼性の向上を考慮することが重要になります。

信頼性の向上を目的とした代表的なシステム設計の考え方として、稼働の継続と安全性のどちらを優先するかによって次のようなものがあります。どのような設計手法にするかはシステムが果たすべき役割などによって異なります。

フェールセーフ

システムや装置が故障やエラーを起こしても人や環境に被害が及ばないように設計された仕組みのことを指します。継続稼働よりも安全性を優先して制御する設計手法です。

例えば、ソフトウェアシステムでエラーが発生した際に安全なモードに移行してデータの損失やシステムの暴走を防ぐ、原子力発電所で異常が発生したときには自動的に原子炉を停止して暴走を防ぐ、などの仕組みがあります。

MEMO

「フェールセーフ(fail-safe)」は、直訳すると「失敗しても安全」という意味です。

フォールトトレラント

システムが一部故障しても、全体として正常に動作を続けられる能力や設計のことを指します。機能を縮小してでも稼働を継続する設計手法です。

例えば、RAID構成のストレージで一部のハードディスクが壊れてもデータを失わずに運用を続けられる、航空機の制御システムで複数の冗長コンピュータで処理を共有し、1つがダメでも飛行を続けられる、などの仕組みがあります。

MEMO

「フォールトトレラント(fault-tolerant)」は、「フォールト(故障・障害)にトレラント(耐える)」という意味です。

フールプルーフ

稼働の継続か安全性かという考え方とは別のものとして、フールプルーフという考え方の設計手法もあります。

「人間はミスをする愚かな生き物(fool)」という前提に立って、システムの利用者が誤操作をしても危険が及ばないように安全対策を施しておく設計手法をフールプルーフと呼びます。

例えば、大事なデータを削除する場合に「本当に削除してもいいですか?」などの確認画面を出したりします。システムに限らず工業製品でも多く用いられている考え方です。

MEMO

例えば、自動ドアに人が挟まらないように障害物を検知するとドアが開く、洗濯中は洗濯機のふたが開かないようにする、などの設計がこれにあたります。

システムの経済性の評価

システムの経済性の評価は、システムの「費用対効果」に対する評価になります。システムの経済性はTCOによって評価されます。

TCO(Total Cost of Ownership)とは、システムの取得から廃棄に至るまでの総コストのことをいいます。そして、このTCOには導入時にかかる初期コスト(イニシャルコスト)、稼働後にかかる運用や保守のための運用コスト(ランニングコスト)があります。

以前は、導入や開発のための初期コストが非常に大きかったため、そこに目が行きがちでした。しかし、近年では技術の進歩やクラウドサービスの普及などにより初期コストが低下した反面、運用コストが増大しています。

また、初期コストを安く抑えようとするあまり運用コストが大きくなり、長期で見た場合のトータルコストが逆に高くなっていしまうということもありました。

このような理由から近年では、初期コストだけでなく長期で見た場合の運用コストも含めたTCOによる評価が重要視されています

確認○×問題

問1

システムの性能を評価する指標と方法に関する次の記述中の「a」~「c」に入る言葉は、aが「ターンアラウンド」、bが「スループット」、cが「ベンチマークテスト」である。

利用者が処理依頼を行ってから結果の出力が終了するまでの時間を「a」タイム、単位時間当たりに処理される仕事の量を「b」という。また、システムの使用目的に合致した標準的なプログラムを実行してシステムの性能を評価する方法を「c」という。

答え:〇

記述の通りです。

問2

あるコンピュータシステムの故障を修復してから60,000時間運用した。その間に100回故障し、最後の修復が完了した時点が60,000時間目であった。MTTRを60時間とすると、この期間でのシステムのMTBFは540時間となる。

答え:〇

システムの運用期間中に100回故障し、MTTR(平均修復時間)が60時間なので、システムが正常に稼働していた時間は

運用時間 60,000時間ー修復時間(60時間×100回)=54,000時間

となります。

MTBF(平均故障間隔)は、システムの稼働時間を故障回数で割ることで求められるので、

システムの稼働時間 54,000時間÷故障回数 100回=MTBF 540時間

となります。

問3

稼働率0.9の装置を2台直列に接続したシステムに、同じ装置をもう1台追加して3台直列のシステムにしたとき、システム全体の稼働率は2台直列のときを基準にすると10%上がる。

答え:×

稼働率0.9の装置を2台直列に接続したシステムの稼働率は、0.81(=0.9 × 0.9)となります。

また、3台直列に接続したときのシステムの稼働率は、0.729(=0.9 × 0.9 × 0.9 )となります。

2台直列のシステムから3台直列のシステムに変更した場合、稼働率は0.81から0.729へ0.081ポイント下がるので、2台直列のときを基準とした場合の減少率は、

0.081/0.81=0.1(10%)

となり、システム全体の稼働率は10%下がることとなります。

問4

図に示す2台のWebサーバと1台のデータベースサーバから成るWebシステムがある。Webサーバの稼働率はともに0.8とし、データベースサーバの稼働率は0.9とすると、このシステムの稼働率は0.864である。ここで、2台のWebサーバのうち少なくとも1台が稼働していて、かつ、データベースサーバが稼働していれば、システムとしては稼働しているとみなす。また、それぞれのサーバはランダムに故障が起こるものとする。

答え:〇

2台のWebサーバは並列システムなので、稼働率は

1ー(1-0.8)×(1-0.8)
=1-0.2×0.2
=1-0.04
0.96

となります。

また、2台のWebサーバとデータベースサーバ間は直列のシステムとなっているで、全体の稼働率は

2台のWebサーバの稼働率×データベースサーバの稼働率
=0.96×0.9
0.864

となります。

問5

入力画面で数値を入力すべきところに誤って英字を入力したらエラーメッセージが表示され、再入力を求められた。このような工夫をしておく設計思想を表す用語は「フォールトトレラント」である。

答え:×

設問はフールプルーフの説明です。なお、フォールトトレラント(フォールトトレランス)はシステムが一部故障しても、全体として正常に動作を続けられる能力や設計のことを指します。機能を縮小してでも稼働を継続する設計手法です。

問6

システムの経済性の評価において、TCOの概念が重要視されるようになった理由として、「システムの総コストにおいて、運用費に比べて初期費用の割合が増大した」といったことなどが挙げられる。

答え:×

以前は、導入や開発のためのの初期コストが非常に大きかったため、そこに注目されていました。しかし、近年ではクラウドサービスの普及などにより初期コストが低下した反面、運用コストが増大しています。

また、初期コストを安く抑えようとするあまり運用コストが大きくなり、逆に長期で見た場合のトータルコストが高くなっていしまうということもありました。

このような理由から近年では、初期コストだけでなく長期で見た場合の運用コストも含めたTCOによる評価が重要視されています。

したがって、「システムの総コストにおいて、初期費用に比べて運用費の割合が増大した」が正しい記述となります。

問7

販売管理システムに関する次の記述のうち、TCOに含まれる費用は2つある。

①販売管理システムで扱う商品の仕入高
②販売管理システムで扱う商品の配送費
③販売管理システムのソフトウェア保守費
④販売管理システムのハードウェア保守費

答え:〇

TCO(Total Cost of Ownership)とは、システムの取得から廃棄に至るまでの総コストのことをいいます。そして、このTCOには導入時にかかる初期コスト(イニシャルコスト)、稼働後にかかる運用や保守のための運用コスト(ランニングコスト)があります。

①と②はイニシャルコストにもランニングコストにも該当しない(システムに係る費用ではない)ため、TCOには含まれません。

一方で、③と④はいずれもランニングコストに該当するため、TCOに含まれます。

よって、TCOに含まれる費用は③と④の2つが正解です。