InnoDB は、さまざまなタイプの I/O 要求を処理するためにバックグラウンドスレッドを使用します。構成パラメータ innodb_read_io_threads
および innodb_write_io_threads
を使用して、データページに対する読み取りおよび書き込み I/O を処理するバックグラウンドスレッドの数を構成できます。これらのパラメータはそれぞれ、読み取りおよび書き込み要求に使用されるバックグラウンドスレッドの数を示します。これらは、サポートされるすべてのプラットフォームで有効です。これらのパラメータの値は、MySQL オプションファイル (my.cnf
または my.ini
) で設定できます。動的に変更することはできません。これらのパラメータのデフォルト値は 4
であり、許可される値の範囲は 1-64
です。
この変更の目的は、InnoDB をハイエンドのシステム上でよりスケーラブルにすることです。各バックグラウンドスレッドは、保留中の I/O 要求を最大 256 個処理できます。バックグラウンド I/O の主なソースは、先読み要求です。InnoDB は、バックグラウンドスレッドのほとんどが均等に作業を共有するような方法で、受信要求の負荷のバランスをとろうとします。InnoDB はまた、要求を 1 つに合体できる可能性を増やすために、読み取り要求を同じエクステントから同じスレッドに割り当てようとします。ハイエンドの I/O サブシステムを使用しており、SHOW ENGINE INNODB STATUS
で 64 × innodb_read_io_threads
個を超える保留中の読み取り要求が表示される場合は、innodb_read_io_threads
の値を増やすと役立つことがあります。
InnoDB の I/O パフォーマンスの詳細は、セクション8.5.7「InnoDB ディスク I/O の最適化」を参照してください。