スポンサーリンク

【応用情報技術者試験】コンピュータシステムの構成を学ぼう!     ~第2章~システムの性能

システムの性能とは、処理速度(レスポンスタイム、スループット)、同時接続数データ量などを数値で評価する基準のことで、RASIS(信頼性・可用性・保守性・保全性・セキュリティ)のような安定性や可用性も含まれ、目的(用途)に合わせてベンチマークテストなどで測定・評価されます。 

レスポンスタイム
ユーザーがシステムに操作(入力)を行ってから、最初の結果が画面に表示されるまでの時間です。

スループット
単位時間あたりに処理・転送できるデータの量や仕事の量(処理能力)のことです。

ベンチマークテスト
PCやスマホに負荷をかけてCPU、GPU、ストレージの処理速度を数値(スコア)で測定し、性能を評価・比較するテストです。

画像参照:https://e-words.jp/w/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0.html

MIPS

MIPS(Million Instructions Per Second)とは、コンピュータが1秒間に実行できる命令の数を100万単位で表した処理速度の単位で、CPUなどのプロセッサ性能の指標です。値が大きいほど処理能力が高いことを示し、10MIPSなら1秒間に1000万個の命令を実行できることを意味します。

プロセッサ
コンピュータにおける「頭脳」の役割を果たす中心的な装置で、演算(計算)や制御、データ処理を行うハードウェアです。

ポイント

  • 意味: 「1秒間に何百万命令できるか」を示す。
  • 用途: CPUやMPU(マイクロプロセッサ)の性能評価に使われる。
  • 計算: 平均命令実行時間の逆数(1秒 ÷ 平均命令実行時間)で求められることが多い。
  • 注意点: 命令セット(命令の種類)が異なるプロセッサ同士では単純比較できず、より正確な比較にはベンチマークテストが用いられる。
  • 関連単位: 10億単位はGIPS(Giga Instructions Per Second)、1000単位はKIPS(Kilo Instructions Per Second)などがある。 

具体例

  • 平均命令実行時間が20ナノ秒(20×10⁻⁹秒)のコンピュータは、1秒 ÷ 20ナノ秒 = 50,000,000命令/秒 → 50 MIPS と計算されます。 

命令ミックス

命令ミックスとは、コンピュータの処理能力を測定するために使われる、「よく使われるCPU命令の種類とその実行割合(構成比)」の組み合わせのことです。CPUは命令ごとに必要な処理時間(クロック数)が異なるため、単に命令数を数えるだけでは実態を反映しにくい問題を解決するため、実際のアプリケーションを想定した標準的な命令のセットと割合(例:ギブソンミックス、コマーシャルミックスなど)を用いて性能を評価します。 

命令ミックスが使われる理由

  • 命令ごとの処理時間の違い: 割り算のような複雑な命令は多くのクロック数を必要とし、足し算のような簡単な命令は少ないクロック数で済みます。
  • 実態に即した性能評価: どの命令がどれくらいの頻度で実行されるか(命令ミックス)を考慮することで、より現実に近い処理能力(MIPSなど)を算出できます。 

クロック数(クロック周波数)
CPUやGPUが動作する「テンポ」であり、1秒間に実行される電気信号の回数を「ヘルツ(Hz)」という単位で表した指標です。

計算方法の例

  1. 各命令の「クロック数」と「出現頻度(%)」を掛け合わせる。
  2. それらをすべて合計して「平均命令実行クロック数」を求める。
  3. この平均値を使ってMIPSなどを算出する。 

このように、命令ミックスは、コンピュータの性能を「特定の命令の集まりをどれだけ速く処理できるか」という観点で、より客観的かつ比較可能な指標として評価するために不可欠な概念です。 

平均実行クロック数からMIPSを計算

平均実行クロック数(または平均命令実行時間)からMIPSを計算するには、1秒を平均命令実行時間で割り、結果を100万で割って「MIPS」単位に変換します。具体的には、MIPS = (1秒 ÷ 平均命令実行時間) ÷ 1,000,000、またはMIPS = 10億 ÷ 平均命令実行時間(ナノ秒単位)という公式で計算できます。

計算のポイント

  • MIPSの定義: 1秒間に実行できる「100万命令」の単位です。
  • 平均命令実行時間: 1つの命令を実行するのにかかる平均時間(例:20ナノ秒)。
  • 計算方法:
    1. 1秒あたりの命令実行回数1秒 ÷ 平均命令実行時間
    2. 単位変換10億ナノ秒(1秒) ÷ 平均命令実行時間(ナノ秒)で直接MIPSを求めることも可能。 

計算例

  • 平均命令実行時間が20ナノ秒 (20ns) の場合:
    • 1秒 ÷ 20ナノ秒 = 50,000,000回
    • これを100万単位にすると 50 MIPS になります。 

関連する指標

  • クロック周波数: 1秒間にクロックが刻まれる回数 (Hz)。
  • CPI (Cycles Per Instruction): 1命令あたりに必要なクロック数。
  • 平均命令実行時間 = CPI × クロック周期 (クロック周期はクロック周波数の逆数) の関係性も重要です。 

FLOPS

FLOPS(Floating-point Operations Per Second)は、コンピュータが1秒間に実行できる浮動小数点演算の回数を示すコンピュータの処理性能の指標です。科学技術計算やAI、機械学習などの分野で性能評価に用いられ、スーパーコンピュータや高性能GPUの性能を示す際によく使われます。MFLOPS(メガフロップス)、GFLOPS(ギガフロップス)、TFLOPS(テラフロップス)、PFLOPS(ペタフロップス)などの単位が使われ、値が大きいほど高性能であることを意味します。 

ポイント

  • 意味: 1秒あたりの浮動小数点演算回数。
  • 用途: コンピュータ(特にスーパーコンピュータ、GPU)の処理能力の指標。
  • 単位: MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPSなど。
  • 「flops」と「FLOPs」の違い:
    • FLOPS (大文字S): 1秒間の処理能力。
    • FLOPs (小文字s): モデル学習に必要な総演算量(計算の複雑さ)。
  • 精度: 扱う数値の精度(単精度、倍精度など)によって性能が異なるため、明記されることが多い。 

具体例

  • 1 GFLOPS (ギガフロップス) = 10億 FLOPS。
  • 1 TFLOPS (テラフロップス) = 1兆 FLOPS。
  • 最新のGPUやスーパーコンピュータでは、数TFLOPSから数百PFLOPS(1京回以上)の性能を持つものもあります。 

この指標は、ディープラーニングモデルの設計や、ハードウェア選定の際に、必要な計算リソースを見積もるために不可欠です。1000倍をキロ(k)、100万倍をメガ(M)、1兆倍をテラ(T)と数えます。 

スループット

スループットとは、一定時間あたりにシステムやネットワークが処理できるデータ量や仕事量のことで、処理能力や通信速度の指標となります。数値が高いほど高性能で、単位はbps(ビット毎秒)などが使われ、「どれだけ多くの仕事をこなせるか」を示し、「レスポンスタイム(応答速度)」とは異なります。 

ポイント

  • 意味: コンピューター、ネットワーク、データベースなどが一定時間(例: 1秒間)に処理できるデータ量やタスクの件数。
  • 単位: bps(ビット毎秒)、kbps、Mbps、pps(パケット毎秒)など。
  • 種類:
    • 理論スループット: 仕様書に記載された理論上の最大値。
    • 実効スループット: 実際に測定される値で、遅延(レイテンシ)などの影響を受ける。
  • 類似・関連用語:
    • レイテンシ(遅延): 処理要求から応答までの時間(応答速度)。
    • 帯域: 通信回線の最大容量。
  • 重要性: システム設計や性能評価、ネットワーク最適化において重要な指標で、コンテンツ配信の高速化やユーザー体験向上に直結する。 

スプーリング

スプーリングとは、コンピュータと低速な周辺機器(プリンタなど)との処理速度の差を埋めるため、データをディスクなどの記憶領域に一時的に溜め込み(スプール)、機器の準備ができたタイミングで少しずつ転送する仕組みで、CPUの待ち時間を減らし、システム全体の効率(スループット)を向上させます。これにより、コンピュータは印刷中でも他の処理を継続でき、印刷ジョブの管理(優先順位設定など)も可能になります。 

仕組みのポイント

  • 一時保存(バッファリング): 印刷データなどをディスク(スプール領域)に一旦書き込みます。
  • 並列処理: CPUは印刷データの転送を待つことなく次の処理へ進み、プリンタは自分のペースでディスクからデータを受け取ります。
  • 効率化: 速度の遅い機器のためにCPUが待機する時間をなくし、システム全体の処理能力を高めます。 

具体例と用途

  • 印刷スプーリング: 複数の印刷ジョブをキュー(待ち行列)に溜め、順次印刷する。これにより、印刷中でも他の作業が可能です。
  • メールサーバー: 大量のメールデータを一時的に保存し、配送遅延を防ぎます。
  • システム全体: CPUとI/O(入出力)装置の速度差を緩和し、複数のタスクを同時並行で効率的に処理するために使われます。 

メリット

  • CPUの有効活用: CPUが低速なI/O装置の完了を待つ時間を削減し、より多くのタスクを処理できます。
  • 生産性向上: ユーザーは印刷完了を待つことなく次の作業に移れるため、作業効率が向上します。
  • 柔軟な管理: 印刷ジョブの優先順位変更や一時停止、キャンセルなどが可能になります。 

レスポンスタイムとターンアラウンドタイム

ターンアラウンドタイムは「仕事の依頼(投入)から完了まで」の全時間、レスポンスタイムは「要求(リクエスト)を出してから最初の応答が返ってくるまで」の時間で、レスポンスタイムはターンアラウンドタイムの一部です。つまり、レスポンスタイムはサーバ処理時間、ターンアラウンドタイムは入力・処理・出力の全工程にかかる合計時間で、レスポンスタイムが短いほど、システムは素早く反応し、ターンアラウンドタイムが短いほど、利用者は仕事全体の完了までが早いと感じます。

違いのポイント

  • レスポンスタイム(応答時間):「要求開始」から「最初の応答開始」まで。
  • ターンアラウンドタイム(周回時間):「要求投入」から「処理完了(結果出力完了)」まで。

具体例(Webサイト閲覧)

  1. ユーザー:「このページをくれ」とリクエストを出す(要求開始/投入)。
  2. サーバー:リクエストを受け取り、処理を開始する。
  3. サーバー:「はい、ページデータです」と返答を送り始める(最初の応答開始)。
    • ここまでがレスポンスタイム
  4. ユーザーのPC:データを受け取り、画面表示処理を行う(クライアント側の処理)。
  5. ユーザーのPC:画面にページが表示され、仕事が完全に終わる(処理完了/結果出力完了)。
    • 「要求開始」から「画面表示完了」までがターンアラウンドタイム

補足
レスポンスタイム:主にオンライントランザクション処理システムの性能を表す際に使用される。
ターンアラウンドタイム:主にバッチ処理システムの性能を表す際に使用される。

スケールアップとスケールアウト

スケールアップは、1台のサーバーの性能(CPU、メモリなど)を強化して処理能力を上げる方法(垂直スケーリング)です。スケールアウトは、サーバーの台数自体を増やし、複数のサーバーで処理を分散させる方法(水平スケーリング)で、拡張の方向性が異なります。スケールアップはシンプルで導入しやすいが限界があり、スケールアウトは高い拡張性と可用性を持つが複雑で、用途や予算に応じて使い分けたり組み合わせたりすることが重要です。

スケールアップ

  • 方法:1台のサーバーのCPU、メモリ、ストレージなどのスペックを向上させる。
  • メリット:実装が比較的容易で、設定の手間が少ない。
  • デメリット:物理的な限界があり、高性能化にはダウンタイム(停止時間)が必要な場合がある。
  • 適したケース:データベースや、単一サーバーで高い処理能力が求められるシステム。

スケールアウト

  • 方法:同じ構成のサーバーを複数台追加し、負荷を分散させる。
  • メリット:ほぼ無限の拡張性と高い可用性(1台故障しても他でカバー)を実現できる。
  • デメリット:サーバー台数分のコストや管理の手間が増える。
  • 適したケース:Webサーバー、検索エンジンなど、多数の単純な要求を並列処理するシステム。

どちらを選ぶべきか

  • システムの特性:サーバー間の連携が少なく並列処理が可能な場合はスケールアウト、データの整合性が重要な場合はスケールアップが有利な傾向。
  • クラウド時代:必要な時に増減しやすいスケールアウトが主流になりつつある。
  • 現実:どちらか一方ではなく、両方を組み合わせて最適なシステムを構築することが多い。

ポイント

まず押さえる3つ

1. スループット(処理能力)

単位時間あたりにどれだけ処理できるかです。
たとえば「1秒間に100件処理」ならスループットは100件/秒。

  • 値が大きい → 高性能
  • 処理件数を問う問題でよく出ます

2. レスポンスタイム(応答時間)

要求を出してから結果が返るまでの時間です。

  • 値が小さい → 高性能
  • 利用者が体感する速さ

▶︎応答時間の内訳

  • 待ち時間(キュー待ち)
  • 処理時間
  • 通信時間
  • 入出力時間

混雑時は待ち時間が大きくなりやすいです。

3. ターンアラウンドタイム

ジョブ投入から処理完了までの総時間

バッチ処理でよく出ます。
レスポンスタイムより範囲が広い概念です。


▶︎頻出:CPU使用率

CPU使用率は、CPUが実際に仕事している割合です。

  • 高すぎる → 混雑しやすい
  • 低すぎる → 資源を活かし切れていない

試験ではCPU使用率100%近いと性能悪化と考えてよいです。


▶︎ボトルネック

全体性能を制限している一番遅い部分です。

たとえば:

  • CPUは速い
  • メモリも十分
  • でもディスクI/Oが遅い

この場合、ディスクがボトルネック

▶︎コツ

性能改善では、最も遅い部分を改善するのが効果的です。


▶︎稼働率・信頼性と混同しやすい

  • 性能 → どれだけ速く処理できるか
  • 稼働率 → どれだけ止まらず動くか

ここはよくひっかけになります。


▶︎試験でよくある計算

1件あたり0.02秒かかるシステム。1秒間に何件処理できるか。

1秒 ÷ 0.02秒 = 50件/秒

ポイント:

スループット = 1 ÷ 1件あたりの処理時間


▶︎よく出るひっかけ

「CPUを速くすれば必ず性能向上」

誤りです。

I/O待ちが原因ならCPUを速くしても改善しません。


▶︎試験での覚え方(かなり大事)

  • スループット → 多くさばけるか
  • レスポンスタイム → 早く返るか
  • ボトルネック → 一番遅い所
  • CPU使用率 → 高すぎると危険

知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…

まずは無料でキャリア相談

コメント