スループットの基礎から実務チューニングまで—帯域幅・遅延・Goodputを網羅する実践ガイド
スループットとは何か — 基本定義
スループット(throughput)は、あるシステムが単位時間あたりに実際に処理・伝送できる仕事量やデータ量を指す指標です。IT分野ではネットワーク、ストレージ、データベース、アプリケーションなどさまざまな領域で用いられます。単位はビット毎秒(bps)、バイト毎秒(B/s)、IOPS(I/O operations per second)など、コンテキストに応じて変わります。
帯域幅(bandwidth)/遅延(latency)との違い
スループットはしばしば「帯域幅」と混同されますが、両者は異なります。帯域幅は理論的な最大伝送容量(例:1 Gbps回線)を示すのに対し、スループットは実際に得られるデータ転送量(例:実効で約940 Mbpsや、アプリレベルで700 Mbps)を表します。
また、遅延(レイテンシ)は1パケットや1要求の往復時間(RTT)など時間の遅れを示す指標で、スループットと遅延は相互に影響します。たとえば、TCPのようなウィンドウベースのプロトコルでは、帯域幅と遅延の積で表される「バンド幅遅延積(BDP: bandwidth–delay product)」が重要で、ウィンドウサイズがBDPに満たないとリンクを十分に活用できずスループットが低下します。
関連概念:グッドプット(goodput)と有効スループット
スループットにはオーバーヘッド(プロトコルヘッダ、再送、暗号化ヘッダなど)が含まれるかどうかで差が出ます。ネットワークでは「グッドプット(goodput)」が、アプリケーションレベルで有用なユーザデータのみの率を示します。つまり、良好なネットワーク設計では帯域幅だけでなく、グッドプットを最大化することが重要です。
スループットの測定単位と指標
- ビット毎秒(bps, kbps, Mbps, Gbps) — 主にネットワーク帯域の評価。
- バイト毎秒(B/s, MB/s) — ファイル転送やディスクスループット。
- IOPS(I/O operations per second) — ストレージのランダムアクセス性能を評価。
- トランザクション毎秒(TPS) — データベースやアプリケーション処理能力。
スループットに影響を与える主な要因
- 物理リンクの容量(線路品質、シンボルレート、速度)
- 遅延(RTT)とBDP:ウィンドウサイズがBDPに対して不十分だとボトルネックになる
- プロトコルオーバーヘッド(TCP/IPヘッダ、SSL/TLS、HTTP/2のフレーミングなど)
- パケット損失と再送:損失が増えると再送が発生し、特にTCPではスループットが低下する
- MTU・フラグメンテーション:小さいMTUはヘッダ比率を上げ、効率を下げる
- 並列度(コネクション数、マルチスレッド、リクエストのバッチング)
- サーバやストレージ側のCPU、I/Oキュー、ロック競合
- ネットワーク混雑(キューイング遅延、パケットロス、QoS制御)
ネットワーク領域の実例と考え方
1 Gbpsの回線を例に取ると、理論的には125 MB/sが上限です。しかしTCP/IPのヘッダやイーサネットのフレーム、暗号化オーバーヘッド、スイッチ・NICの性能などで実効値はそれより低くなります。さらにRTTが大きい環境では、TCPウィンドウが小さいと短時間あたりの転送量が制限されます。ここで役立つ概念がBDPで、BDP(バイト) = 帯域幅(B/s) × RTT(秒)です。BDPに合わせて送受信バッファを設定することでパイプを埋め、スループットを向上させられます。
ストレージ/データベースのスループット
ストレージではシーケンシャルスループット(MB/s)とランダムIOPSが分かれます。SSDは高いIOPSと低遅延を持ち、HDDは高いシーケンシャル帯域を得意とします。データベースでは単一トランザクションの遅延やロック競合、インデックス設計がスループットに影響します。水平分散(シャーディング、レプリケーション)で並列処理を増やすことでスループットを伸ばす戦略が一般的です。
スループットの測定方法とツール
- ネットワーク測定: iperf / iperf3、netperf、mtr、ping(遅延・パケットロス確認)
- ストレージ測定: fio、dd(注意:バッファ効果に注意)、iostat
- アプリケーション負荷: JMeter、wrk、hey(HTTP負荷)
- システム観察: sar、top、perf、vmstat、ネットワークのsFlow/NetFlow
測定時の注意点として、短時間のバーストと持続的なスループットは異なる点、CPUやバッファの影響で一時的に高い値が出る場合がある点、暗号化や圧縮の有無で差が出る点に留意してください。
改善策・チューニングのアプローチ
- プロトコルレベル: TCPウィンドウ調整、TCPセグメントオフロード(TSO)、GSO/GROの有効化
- 構成面: MTUの最適化(jumbo framesの活用)、NICチーミング、QoS設定
- アプリケーション: 並列化(マルチコネクション、スレッド化)、バッチ処理、非同期IOの採用
- キャッシュとCDN: レイテンシとバックエンド負荷を下げ、実効スループットを改善
- 圧縮: 帯域がボトルネックの場合に有効だが、CPU負荷とのトレードオフを評価する
- スケールアウト: 水平分散で処理を分散し、全体のスループットを向上
ベンチマークと事前検証の重要性
設計時には実環境を模した負荷試験が不可欠です。合成ベンチマークだけで判断すると、実トラフィックやアクセスパターン(ランダム/シーケンシャル、小さい多数のリクエスト vs 大きなファイル転送)を反映しないことがあります。負荷試験では監視(CPU、メモリ、ディスクI/O、ネットワークキュー)を同時に行い、どこがボトルネックになっているかを特定します。
理論的背景:キューイング理論とLittleの法則
キューイング理論の基本としてLittleの法則(L = λ W)があります。ここでλは平均到着率(=スループットとも解釈できる)、Lは系内の平均仕事量、Wは1つの仕事が系内にいる平均時間です。これを用いると、処理中の並列度や平均処理時間から期待されるスループットを見積もれます。
運用上の注意点と落とし穴
- ピークだけの最適化は意味がない場合がある(持続的スループットを重視)
- パフォーマンスの向上が別の層のボトルネックを顕在化させる(例:ネットワーク改善でDBがボトルネックに)
- スループット向上のための最適化は、コスト増加や複雑化を招くことがあるため、事業要件とトレードオフを評価する
まとめ
スループットは単なる「速さ」ではなく、システムが現実に処理できる量を示す重要な指標です。帯域幅や遅延、プロトコルの特性、ハードウェア性能、ソフトウェア設計など多くの要因が絡み合います。測定は実環境に近い条件で行い、BDPやLittleの法則といった理論的な道具立てを活用してボトルネックを特定、適切なチューニングやスケール戦略を適用することが実務上の鍵です。
参考文献
- Throughput (computing) - Wikipedia
- Bandwidth (computing) - Wikipedia
- Goodput - Wikipedia
- Little's law - Wikipedia
- RFC 5681 — TCP Congestion Control
- J. Mathis et al., "The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm"
- iperf / iperf3 — Network Performance Tool
- fio — Flexible I/O Tester


