IOPS、スループット、レイテンシについて


背景

AWSのEBSボリュームタイプとして、汎用SSDにgp3が使えるようになりました。
EC2にこれをアタッチするにあたり、IOPSとスループットの値を設定する必要があったことから、調べた結果を簡単に備忘録として記載します。
また、関連用語として忘れがちだったレイテンシについても調べたので、併せて書きました。

目次

・IOPSとは
・スループットとは
・IOPSとスループットの最適化
・レイテンシとは
・スループットとレイテンシの関係

IOPSとは

「ストレージが1秒あたりに処理できるI/Oアクセスの数」

スループットとは

「単位時間あたりの処理能力(データ転送量)」
つまり、一定時間内にどれだけの量のデータを転送できるかという能力。
8Mbps = 8Mbit / 1s = 1Mbyte / 1s = 「1秒間に1MBのデータ転送ができる」ということ。

IOPSとスループットの最適化

ディスクのスループットが大きければアプリケーションのパフォーマンスが必ず上昇するというわけではない。
小さいサイズのファイルを数多く書き込み/読み込みするような場合、スループットよりもIOPS の数値を重視した方がパフォーマンスが上がりやすい。
逆に、一度の書き込み/読み込みサイズが大きい場合、スループットを重視した方がパフォーマンスが上がりやすい。

レイテンシとは

「処理や転送の際にかかる一回毎の遅延時間」
デバイスに対して、データ転送などを要求してから、その結果が返送されるまでの遅延時間。

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

連続して大量のデータを処理する場合は、スループットの性能が処理速度に深く関係する。
一方で、双方向的に短いデータを取り扱い、応答を待ってやり取りするようなもの(通話やゲームなど)においては、スループットよりもレイテンシが処理速度に深く関係する。