Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.