InnoDB
では、バックグラウンド threads を使用して様々なタイプの 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 の主なソースは、read-ahead リクエストです。 InnoDB
は、ほとんどのバックグラウンドスレッドが同じように動作するように、受信リクエストのロードバランシングを試みます。 また、InnoDB
は、同じエクステントから同じスレッドに読取りリクエストを割り当てようとし、リクエストを結合する可能性を高めます。 ハイエンドの I/O サブシステムがあり、SHOW ENGINE INNODB STATUS
出力に 64× innodb_read_io_threads
を超える保留中の読取りリクエストが表示される場合、innodb_read_io_threads
の値を増やすことでパフォーマンスが向上する可能性があります。
Linux システムでは、InnoDB
はデフォルトで非同期 I/O サブシステムを使用して、データファイルページの先読みおよび書込みリクエストを実行します。これにより、InnoDB
バックグラウンドスレッドがこれらのタイプの I/O リクエストを処理する方法が変更されます。 詳細は、セクション15.8.6「Linux での非同期 I/O の使用」を参照してください。
InnoDB
I/O のパフォーマンスの詳細は、セクション8.5.8「InnoDB ディスク I/O の最適化」 を参照してください。