IOPS(1秒あたりのI / O)と、それがDB CRUD操作にどのように影響するかについて知りたい


8

InnoDBエンジンを実行するデータベース(MySQL)の専用サーバーを取得したい。InnoDBの容量には、IOPSを定義できるこのオプションがあります。100 IOPSに対応するSATA 72K-RPM HDDがあるとします。それは私のDBが1秒あたり100の同時SQLクエリしか実行できないということですか、それとも1秒で100回の単一の読み取りまたは書き込みを意味するのですか?このようなハードウェアでDBが起動される毎秒3000クエリをどのように処理できますか?少し混乱しているので説明してください。専用サーバーで200以上のクエリを実行したい。

回答:


10

ハードドライブのIOPSは、特定のドライブが1秒間に実行できるI / O操作の数を示します。ランダム読み取り、ランダム書き込み、シーケンシャル読み取り、およびシーケンシャル書き込みには異なるパフォーマンス特性があるため、1つの数値を見ると、これは、いくつかのワークロードを表すこれら4つの数値の加重平均であることを意味します。そのワークロードは、データベースが実際に実行するワークロードと類似している場合と類似していない場合があるため、システムは1秒あたりの操作数が増減する可能性があります。

SQLクエリは、物理I / Oを行うと想定します(多くのクエリは、データベースのメモリ、ファイルシステムキャッシュ、またはSANキャッシュに既にあるデータから単に読み取るだけなので、I / Oを行う必要はありません)。多くのI / O操作を実行します。クエリが実際に物理I / Oを実行している場合、1つのクエリで1秒あたり100回のI / O操作を簡単に実行できます。1秒間に1つの物理I / O操作を実行するだけで100のクエリが同時に実行される可能性がありますが、100のクエリすべてが返されるまでに許容できない時間を要する可能性があります。

現実的には、1秒あたり3000クエリを処理する必要がある場合、必要なデータが(できればデータベースによって)キャッシュされるようにすることで、クエリの大部分が物理I / Oを実行する必要がないようにする必要があります。また、システムが実行できる合計IOPSを増やすには、(適切なRAID構成で)比較的多数のドライブにI / Oを分散する必要があります。この種のキャパシティプランニングでは、アプリケーション、データ、各クエリが実際に必要とする可能性のあるI / Oの量などを十分に理解する必要があります。さらに、コストとパフォーマンスのバランスを取る必要があります。メモリ、ドライブの追加、またはRAID構成の変更には、コスト、パフォーマンス、利用可能なスペースのさまざまなトレードオフが伴い、これらを考慮する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.