【すーるーぷっと】

スループット とは?

💡 「実際に通ったデータ量」、カタログ値と実力値の違いがスループット
📌 このページのポイント
スループット — 単位時間あたりの処理能力 低スループット 少量ずつ処理 100 リクエスト/秒 高スループット 10,000 リクエスト/秒 スループットに影響する要素 帯域幅 ネットワーク速度 CPU性能 処理速度 並列処理 同時処理数 ボトルネック I/O待ち・DB遅延 一定時間に処理できるデータ量やリクエスト数を表す指標
スループットのイメージ
ひよこ ひよこ

スループットって帯域幅と何が違うの?

ペンギン先生 ペンギン先生

帯域幅は「理論上の最大速度(道路の幅)」、スループットは「実際に通れた量(実際の交通量)」のイメージ。渋滞や信号があれば実際の通過量は最大値より少なくなる。

ひよこ ひよこ

なんでスループットは帯域幅より低くなるの?

ペンギン先生 ペンギン先生

プロトコルのヘッダ(制御情報)のオーバーヘッドパケットロスによる再送、ルータの処理遅延などが影響するから。実際の転送量は理論値の70〜90%程度になることが多い。

ひよこ ひよこ

どうやって測定するの?

ペンギン先生 ペンギン先生

iperf3というツールをよく使う。2台のPCにインストールして実際にデータを転送して計測するんだ。インターネット回線なら「fast.com」や「speedtest.net」でも確認できるよ。

ひよこ ひよこ

レイテンシとスループットの関係って?

ペンギン先生 ペンギン先生

レイテンシは「1つのリクエストの応答時間」、スループットは「単位時間あたりの処理量」。レイテンシが低くてもスループットが低いことがある(1件ずつしか処理できないシステム)し、レイテンシが高くてもスループットが高いこともある(大量に並列処理するバッチ処理など)。両方をバランス良く最適化するのがパフォーマンスチューニングの難しさだよ。

ひよこ ひよこ

Webサービスのスループットを上げるにはどうすればいいの?

ペンギン先生 ペンギン先生

キャッシュCDNRedis)で繰り返しの処理を減らす、データベースインデックスを張ってクエリを高速化する、非同期処理でI/O待ちの間に他のリクエストを処理する、水平スケーリングサーバーを増やす、といった方法があるよ。まずはボトルネックがどこかを特定するのが最優先で、プロファイリングやAPMツールで計測してから手を打つのが鉄則だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
スループットって出てきたら「実際に転送できたデータ量、理論値ではなく実測値のネットワーク速度」と思えばOK!
📖 おまけ:英語の意味
「Throughput」 = 処理量・通過量
💬 スループットはネットワーク以外にも、CPUの処理性能やDBの処理件数などにも使う汎用的な概念
← 用語集にもどる