MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  InnoDB バックグラウンド I/O スレッドの数の構成

15.8.5 InnoDB バックグラウンド I/O スレッドの数の構成

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 の最適化」 を参照してください。


関連キーワード:  InnoDB, テーブル, 構成, 圧縮, スペース, ロック, インデックス, INFORMATION, SCHEMA, リクエスト