スループット
一定時間内に実際に転送・処理できたデータ量や処理件数を表す性能の指標。ネットワークではビット/秒などで表し、ヘッダーなどのオーバーヘッドや確認応答の待ち時間、再送の影響を受けるため、回線の伝送速度を超えることはない。
イマシルちゃんの解説
1Gbit/sの回線につないでも、ファイルのダウンロードがそこまで速くならないことがあるんだ。
回線の速さは、信号を送り出せる最大の速さにすぎないからだよ。
実際の通信では、宛先などを書いたヘッダーがデータに付くし、返事を待つ時間や送り直しも発生するの。
そうした分を差し引いて、一定時間に本当に運べたデータの量を表す性能の指標がスループットなんだ。
サーバが1秒間に処理できる要求の数のように、機器やシステムの処理能力を表すときにも使うよ。
カタログの数字ではなく実際に運べる量で考えるから、回線や機器を選ぶときの大切なものさしになるんだね。
この解説はわかりやすかったですか?
より深い解説
回線の速さとの違い
スループットは「単位時間あたりに実際に運べた量」である。回線速度(伝送速度)は、物理的に信号を送り出せる速さを示す。両者は同じビット/秒で表すため混同しやすいが、回線速度は設備の能力、スループットは通信の結果である。
ネットワーク機器の性能試験では、もう少し厳密な定義も使われる。RFC 1242は、装置が提示されたフレームを一つも落とさずに転送できる最大の速さをスループットと定義している。測定手順はRFC 2544にまとめられている。一方、日常の会話や午後問題では、利用者から見た実効的な転送速度を指すことが多い。どちらの意味で使われているかは、文脈から判断する。
| 用語 | 何を表すか | 例 |
|---|---|---|
| 回線速度 | 回線が信号を送り出せる速さ | 1000BASE-Tの1Gbit/s |
| スループット | 実際に転送できた量の速さ | 測定で得た940Mbit/s |
| グッドプット | ヘッダーや再送を除いた、アプリケーションが受け取った有効なデータの速さ | ファイル本体の転送速度 |
| 回線利用率 | 回線速度に対する実際の通信量の割合 | 平均40% |
goodputは、スループットのうちアプリケーションにとって意味のあるデータだけを数えた値である。同じ回線でも、どの層のどの部分を数えるかで値が変わる。比べるときは、測定した層と範囲をそろえる必要がある。
スループットを下げる要因
スループットが回線速度に届かない理由は、大きく次の四つに分けられる。原因によって対策が違うため、まずどれに当たるかを見極める。
| 要因 | 内容 | 主な例 |
|---|---|---|
| オーバーヘッド | データ以外に送る情報や送信の間隔 | プリアンブル、各層のヘッダー、フレーム間ギャップ |
| 待ち時間 | 確認応答などを待つ間は送れない | TCPのウィンドウ不足、ストップアンドウェイト |
| 損失と再送 | 失われたデータを送り直す | 輻輳による破棄、無線の電波干渉 |
| 処理能力 | 経路上の機器や端末の処理が追いつかない | ファイアウォールの検査、サーバのCPUやディスク |
経路上で最も能力の低い部分が、全体のスループットを決める。この箇所をボトルネックと呼ぶ。回線を増速しても、その箇所が別の場所にあれば結果は変わらない。
計算例:フレームに付く情報
1Gbit/sのイーサネットで、TCPを使って大きなファイルを送る場合を考える。MTUは1,500オクテット、IPv4とTCPのヘッダーはオプションなしでそれぞれ20オクテットとする。
1フレームで運べるTCPのデータは1,500 − 40 = 1,460オクテットである。一方、回線上では1フレームごとに次の領域も送られる。
合計は1,538オクテットになる。データの割合と、アプリケーションに届くデータの速さの上限は次のとおりである。
データの割合 = 1,460 ÷ 1,538 ≒ 0.9493
上限 = 1Gbit/s × データの割合 ≒ 949Mbit/s
つまり誤りも待ち時間もない理想的な状態でも、TCPのデータは回線速度の約95%しか運べない。TCPのタイムスタンプオプションなどでヘッダーが長くなれば、さらに少し下がる。
小さいフレームでは、データ以外の領域が占める比率がずっと大きい。最小の64オクテットのフレームは、プリアンブルとギャップを加えると回線上で84オクテットを占める。1Gbit/sで送れるフレーム数は次のとおりである。
1,000,000,000 ÷(84 × 8)≒ 1,488,095フレーム/秒
機器の性能表で、ビット/秒とは別に1秒あたりのパケット数(pps)が示されるのはこのためである。
計算例:ウィンドウとRTT
TCPは、確認応答を待たずに送れる量(ウィンドウ)を送り切ると、返事が届くまで次を送れない。そのため1本のTCPコネクションのスループットには、次の上限がある。
スループットの上限 ≒ ウィンドウサイズ ÷ RTT
ウィンドウサイズが65,535オクテット、RTT(往復遅延時間)が20msの場合を計算する。
65,535 × 8 ÷ 0.02 = 26,214,000ビット/秒 ≒ 26.2Mbit/s
この経路の回線が1Gbit/sでも、1本のTCPコネクションは約26Mbit/sで頭打ちになる。逆に1Gbit/sを使い切るのに必要なウィンドウは、帯域とRTTの積(帯域遅延積)で求める。
1,000,000,000 × 0.02 = 20,000,000ビット = 2,500,000オクテット(約2.5Mバイト)
TCPヘッダーのウィンドウ欄は16ビットなので、そのままでは65,535オクテットまでしか表せない。より大きな値はRFC 7323のウィンドウスケールオプションで扱う。遠い拠点との通信だけ遅いという症状では、回線速度より先にRTTと受信バッファの大きさを確認する。
計算例:転送時間の見積り
スループットが分かれば、転送にかかる時間を見積もれる。例えば、200Mバイトのファイルを実効80Mbit/sで送る場合は次のとおりである。ここでは1Mバイトを10^6オクテットとする。
200 × 10^6 × 8 ÷(80 × 10^6)= 20秒
回線速度の100Mbit/sで割ると16秒になり、実際より短く見積もってしまう。午後問題で伝送効率が条件に与えられたら、回線速度に掛けて実効速度を求める。実効速度が直接与えられた場合は、その値でデータ量を割る。
機器のスループットを読む
ルータやスイッチが、すべてのポートで回線速度いっぱいのフレームを落とさず転送できることをワイヤレート(ワイヤスピード)での転送という。性能表を比べるときは、フレーム長の条件を確認する。大きいフレームではビット/秒が高く見え、64オクテットのような小さいフレームではpps性能が問われる。
ファイアウォールやUTMでは、有効にする機能によって値が大きく変わる。パケットフィルタリングだけの値、IPSを有効にした値、TLSインスペクションを有効にした値は別物である。製品の資料に書かれた数値は、測定条件とあわせて読む必要がある。同時セッション数や新規接続数/秒も、スループットとは別の上限として確認する。
サーバやシステムでは、1秒あたりのトランザクション数(TPS)や要求数をスループットとして扱う。負荷を上げていくとスループットはある点で頭打ちになり、そこから先は応答時間だけが延びる。この頭打ちの点を把握することが、性能テストやサイジングの目的の一つである。
測定するときの注意点
スループットは、測り方によって値が大きく変わる。次の点をそろえないと、正しく比較できない。
- 測定する区間:端末間なのか、特定の機器だけなのか
- 方向:上りと下りで回線の速さや混雑が違うことがある
- コネクション数:1本のTCPと複数本の並列では、ウィンドウの制約の効き方が違う
- 時間帯:ほかの利用者と回線を共有していれば、混雑する時間に下がる
- 端末の性能:測定する端末のCPUやストレージがボトルネックになることがある
TCPのスループット試験の考え方はRFC 6349が整理している。RTTと帯域遅延積を先に測り、理論上の上限と実測値を比べる手順である。
改善策の選び方
対策は、低下の原因に合わせて選ぶ。原因を確かめずに回線を増速しても、効果が出ないことがある。
| 原因 | 対策の例 |
|---|---|
| 回線の帯域不足 | 増速、リンクアグリゲーション、通信のピークを分散する |
| ウィンドウ不足(RTTが大きい) | 受信バッファの拡大、ウィンドウスケールの利用、並列転送 |
| パケット損失 | 輻輳箇所の解消、QoSによる優先制御、無線環境の改善 |
| 機器の処理能力不足 | 上位機種への更改、検査機能の対象の見直し、負荷分散 |
| 送る量そのものが多い | 圧縮、キャッシュ、CDNの利用 |
午後での問われ方
- 回線速度・伝送効率・データ量から転送時間を計算させ、実効速度との違いを問う
- 回線を増速してもスループットが改善しない理由を、ウィンドウサイズとRTT、または機器の処理能力から説明させる
- ファイアウォールやプロキシサーバの更改で、検査機能を有効にしたときの性能要件を確認させる
- 測定結果の表から、どの区間・どの機器がスループットを制限しているかを読み取らせる