レイテンシ vs スループット
Latency vs Throughput
レイテンシは『1件を終えるまでの時間』、スループットは『単位時間あたりに捌ける件数』。一般に、許容できるレイテンシを保ちつつスループットを最大化することを目指す。
たとえ話: 高速道路
- レイテンシ = あなたの車が入口から出口まで走り切る所要時間。
- スループット = その道路が1時間に通せる車の総数。
車線を増やす(並列化)と『1時間に通せる車の数』=スループットは増えますが、あなた1台の所要時間=レイテンシは変わりません。逆に制限速度を上げれば1台の所要時間は減りますが、車間が詰まって事故れば全体が止まります。
高速だが行列、の例
工場のベルトコンベアを思い浮かべてください。
- 1個ずつ丁寧に作る → レイテンシは短いが、1時間あたりの生産数(スループット)は少ない。
- まとめて大量に流す → スループットは高いが、1個が完成するまでの待ち時間(レイテンシ)は長くなる。
図を描画中...
なぜ『許容レイテンシ + 最大スループット』なのか
ユーザー体験には『これ以上遅いと離脱する』という閾値があります(例: Webページは数百ms)。だから無制限にスループットを優先してレイテンシを犠牲にはできません。まず許容できる遅さの上限を決め、その範囲内でできるだけ多く捌く、という順序で考えるのが定石です。
つまずきポイント
- 「レイテンシが低い = スループットが高い」ではない。別の軸の指標。
- レイテンシは平均だけでなく**P99(99パーセンタイル=遅い方から1%)**で見るのが実務では重要。平均は速くても一部のユーザーが激遅、というのを平均は隠してしまう。
📊 図解
図解: レイテンシとスループットの位置づけ
横軸=スループット(単位時間に捌ける件数)、縦軸=レイテンシの短さ。並列化(車線増設)はスループットを右に動かし、高速化(制限速度UP)はレイテンシを上に動かす。別々の軸であることが見て取れる。
図を描画中...