Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  InnoDB マスタースレッドの I/O レートの構成

14.13.8 InnoDB マスタースレッドの I/O レートの構成

InnoDB でのマスタースレッドは、さまざまなタスクをバックグラウンドで実行するスレッドです。これらのタスクは、そのほとんどがダーティーページのバッファープールからのフラッシュや、変更の挿入バッファーから適切なセカンダリインデックスへの書き込みなどの I/O 関連のタスクです。マスタースレッドは、これらのタスクを、サーバーの通常の動作に悪影響を与えない方法で実行しようとします。つまり、使用可能な空き I/O 帯域幅を推定し、自身のアクティビティーをチューニングしてこの空き容量を利用しようとします。従来より、InnoDB は、サーバーの合計 I/O 容量として 100 IOPs (1 秒あたりの入力/出力操作数) のハードコードされた値を使用してきました。

パラメータ innodb_io_capacity は、InnoDB で使用できる全体的な I/O 容量を示します。このパラメータはほぼ、システムが 1 秒あたりに実行できる I/O 操作の数に設定するようにしてください。この値は、システム構成によって異なります。innodb_io_capacity が設定されている場合、マスタースレッドは設定済みの値に基づいて、バックグラウンドタスクに使用できる I/O 帯域幅を推定します。この値を 100 に設定すると、従来の動作に戻ります。

innodb_io_capacity の値は、100 以上の任意の数値に設定できます。デフォルト値は 200 であり、標準的な最新の I/O デバイスのパフォーマンスが MySQL の初期のころより向上していることを反映しています。通常、消費者レベルのストレージデバイス (最大 7200 RPM のハードドライブなど) には、以前のデフォルトである 100 近辺の値が適しています。より高速なハードドライブ、RAID 構成、および SSD は、値を大きくするとメリットがあります。

innodb_io_capacity 設定は、すべてのバッファープールインスタンスに対する合計の制限です。ダーティーページがフラッシュされるとき、innodb_io_capacity 制限は、バッファープールインスタンス間で均等に分割されます。詳細は、innodb_io_capacity システム変数の説明を参照してください。

このパラメータの値は MySQL オプションファイル (my.cnf または my.ini) で設定するか、あるいは SET GLOBAL コマンド (これには SUPER 権限が必要です) で動的に変更できます。

以前、InnoDB マスタースレッドは、必要なパージ操作もすべて実行していました。MySQL 5.6.5 以降では、これらの I/O 操作はほかのバックグラウンドスレッドに移行され、そのスレッドの数は innodb_purge_threads 構成オプションによって制御されます。

InnoDB の I/O パフォーマンスの詳細は、セクション8.5.7「InnoDB ディスク I/O の最適化」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.