IOPS
#性能
概要
データベースへの1秒間における書き込み、読み込み回数の合計回数のこと
IOPS(I/O毎秒)とは - 意味をわかりやすく - IT用語辞典 e-Words
ハードディスクやSSDなどのストレージ(外部記憶装置)の性能指標の一つで、ある条件の元で1秒間に読み込み・書き込みできる回数のこと。
以下のような言い方をするのが正しい
IOサイズが4KBの条件のもとで1,000IOPS
AWSだと...SSDで256KB, HDDで1024KBらしい
I/O の特性とモニタリング - Amazon Elastic Compute Cloud
IOPSの計算方法(共通の考え方?)
AWSから拝借(I/O の特性とモニタリング - Amazon Elastic Compute Cloud)
1. 256KB以上の書き込み or 読み込みサイズを1回のリクエストで要求する場合
「IOPS = 要求サイズ // 256KB + 1」となる
例えば、1024KBの書き込み or 読み込みをする場合だと、4IOPSという計算になる。
2. 32KB x 8のシーケンシャルな書き込み or 読み込みを要求する場合
最大IOサイズである256KBまでマージされることになる。
つまりIOPSは1になる。
3. ランダムアクセスによって8 x 32KBのリクエストを要求する場合
サイズに関係なく、IOPSは8となる。
ランダムなので、マージするとかできない
4. ランダムアクセスによって8 x 512KBのリクエストを要求する場合
これは応用でIOPSは16という計算になる。
ストレージにはIOPSの限界があったりするので注意
AWSでもわかるように、ストレージごとに出せるIOPSの限界というのが定められてることが多い。
最大に達すると、それ以上のIO処理は次の秒に回されてしまう。待ちが発生することになる。
例えば、限界が3000IOPSとあった場合、4000IOPS分の要求が来てしまうと、残りの1000IOPSは次に回される。
IOPSが増える要因は?
多重度、つまり、同時要求数が増えるとIOPSが増えやすい。
Webサイトなどだと、同時アクセス数が増えるとDBへのランダムアクセスの数が増え、その分IOPSが増える。
1つの要求サイズが増えても、IOPSが増える可能性が高くなる。
またまた、Webサイトで考えると、ユースケースが変わって1ユーザーのAPI実行が要求するサイズが増えて、ストレージが設定してる最大IOサイズを超えてしまうと、IOPSが増える。
参考
ディスクの性能を示すIOPSとは? - puti se note
IOPS(I/O毎秒)とは - 意味をわかりやすく - IT用語辞典 e-Words
I/O の特性とモニタリング - Amazon Elastic Compute Cloud
IOPSとスループットのちがい | DEVLABO