1 概念
スループットは、ある装置やシステムが一定時間内に処理できる仕事量、データ量、または件数を表す性能指標である。情報技術では、通信、計算、記憶、入出力などの実際の処理能力を示す語として広く用いられる。理論値だけではなく、混雑や制御処理を含めた実効的な能力を把握する際に重要である。
1.1 定義
一般にスループットは、単位時間あたりに完了した処理量として定義される。対象はビット、バイト、パケット、命令、トランザクションなど多岐にわたり、どの単位を採るかは対象分野によって異なる。性能評価では、入力された仕事が実際にどれだけの速さで出力へ到達したかを示す尺度として扱われる。
1.2 単位と表し方
表記は、bps、B/s、件/秒、回/秒などが用いられる。通信分野ではビット毎秒、記憶装置やファイル転送ではバイト毎秒、業務システムでは秒あたりの処理件数が典型的である。実務では平均値だけでなく、最大値、最小値、ピーク時の値も併記されることが多い。
1.3 関連する性能指標
スループットは単独ではなく、他の性能指標と組み合わせて評価される。とくに遅延、応答時間、利用率は、処理速度と体感性能を異なる角度から示すため、相互補完的に扱われる。
1.3.1 遅延
遅延は、処理や伝送が開始されてから結果が現れるまでの時間差を指す。スループットが高くても、各処理の遅延が大きい場合には、利用者から見た快適さが十分でないことがある。
1.3.2 応答時間
応答時間は、要求を出してから応答を受け取るまでの総時間である。待ち行列の滞留や再処理が増えると長くなりやすく、スループットとの両立が設計上の課題となる。
1.3.3 利用率
利用率は、資源が実際にどの程度使われているかを示す指標である。高い利用率は効率の良さを示す場合もあるが、過度に高まると待ち時間が増え、結果としてスループットが不安定になることがある。
2 情報技術における用途
情報技術では、スループットは多様な機器や構成の比較に用いられる。単なる理論性能ではなく、実際の運用環境でどれだけの処理を継続できるかを示すため、設計段階から監視運用まで幅広い場面で参照される。
2.1 通信ネットワーク
通信ネットワークでは、回線や装置がどれだけのデータを通せるかを示す基準となる。リンク速度が同じでも、通信方式や輻輳の程度により、観測されるスループットは大きく変化する。
2.1.1 帯域幅との関係
帯域幅は、理論上その通信路が扱える容量を示すのに対し、スループットは実際に流れた量を示す。両者は関連するが同一ではなく、符号化、制御、損失、待機時間などの要素によって実効値は低下しうる。
2.1.2 実効スループット
実効スループットは、オーバーヘッドを差し引いた後に実際へ届くデータ量を意味する。パケットヘッダ、再送、暗号化処理、輻輳回避などの影響を受け、利用者が体験する通信速度に近い概念として扱われる。
2.2 コンピュータシステム
コンピュータシステムでは、演算装置や主記憶の処理能力を測る際に用いられる。単一命令の速さだけでなく、同時実行や待ち状態の少なさが総合的な処理量に影響する。
2.2.1 プロセッサ性能
プロセッサのスループットは、一定時間に実行できる命令やタスクの量を指す。クロック周波数だけでは十分に表せず、パイプライン、キャッシュ、分岐予測、同時実行スレッドなどの設計要素が関わる。
2.2.2 メモリ性能
メモリ性能では、データ転送量やアクセス完了件数が基準となる。帯域が広くても、待ち時間が長いと全体の処理量は伸びにくく、逆に応答が速くても転送量が小さいと大量処理には不向きである。
2.3 記憶装置
記憶装置では、読み出しと書き込みを合わせた実効処理量が重視される。媒体の種類やアクセス方式によって特性が異なり、連続転送に強いものと小さな要求を数多くこなすものとで評価軸が分かれる。
2.3.1 読み書き性能
読み書き性能は、データを取り出す速さと保存する速さの総合である。大きな連続ブロックでは高い値を示しても、細かな断片を頻繁に扱う場合には低下しやすい。
2.3.2 入出力性能
入出力性能は、周辺機器や補助記憶とのやり取りを含めた処理能力である。キューの長さ、転送方式、バッファ容量などが影響し、システム全体の処理量を左右する。
3 影響要因
スループットは、機器の公称値だけで決まらず、実行環境や制御方式によって変動する。資源の取り合い、並列度の設定、混雑の抑制、付随的な処理負荷が、最終的な処理量を左右する。
3.1 資源競合
複数の処理が同じ資源を同時に必要とすると、待機が発生する。CPU、メモリ、バス、回線、ストレージなどが共有されると、競合が増えて全体の流量が落ちることがある。
3.2 並列処理
並列処理は、複数の作業を同時に進めて処理量を増やす方法である。ただし、分割と同期に伴うコストが大きい場合には、期待したほどの向上が得られないこともある。
3.3 混雑制御
混雑制御は、負荷が高まった際に流量を調整して破綻を避ける仕組みである。短期的には送信や投入を抑えるため、見かけのスループットが下がる場合があるが、長期的には安定稼働に寄与する。
3.4 オーバーヘッド
オーバーヘッドは、本来の処理以外に必要な付帯作業を指す。管理情報の付加、状態確認、同期、整列などが増えるほど、実際に運ばれる本体の量は相対的に減少する。
3.4.1 制御情報
制御情報は、伝送や実行を管理するために添えられる補助データである。正確な動作には不可欠だが、これが増えると有効データの割合が下がる。
3.4.2 再送処理
再送処理は、失敗したデータや命令をもう一度扱う手順である。信頼性を高める一方、追加の通信や計算を要するため、総合的な処理量を押し下げる要因になる。
4 評価と改善
スループットの評価では、対象を固定したうえで条件をそろえ、再現可能な方法で測定することが重要である。改善にあたっては、単純な増速だけでなく、無駄の削減や負荷の配分変更も有効である。
4.1 測定方法
測定では、一定期間に完了した処理量を実測し、時間で割って求める。条件設定を誤ると結果がぶれやすいため、試行回数、負荷の種類、測定区間を統一することが望ましい。
4.2 ベンチマーク
ベンチマークは、性能を比較するための標準的な試験である。合成負荷を用いるものと、実際の利用状況に近い負荷を用いるものがあり、目的に応じて使い分けられる。
4.3 改善手法
改善では、処理の無駄を減らし、資源の偏りを抑え、全体の流れを整えることが基本となる。ボトルネックを特定し、その部分に合わせて構成を見直すと効果が出やすい。
4.3.1 最適化
最適化は、手順や実装を見直して余計な処理を減らす方法である。アルゴリズムの改善、データ配置の工夫、設定値の調整などが含まれる。
4.3.2 負荷分散
負荷分散は、処理を複数の資源へ分けて偏りを避ける手法である。単一箇所の過負荷を防ぎ、全体として安定したスループットを得やすくする。
4.3.3 キャッシュ活用
キャッシュ活用は、頻繁に使うデータを近い場所に保持して再利用する方法である。遠い記憶領域へのアクセスを減らせるため、待ち時間が短縮され、処理量の増加につながる。