「InnoDB I/Oサブシステムの変更」の編集履歴(バックアップ)一覧はこちら

InnoDB I/Oサブシステムの変更」(2012/06/02 (土) 14:32:30) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

&counter()人目 ( ̄ー ̄)/~~ アリガトネ [[MySQL5.5 リファレンス>トップページ]] :: 1. [[一般情報]] :: 1.4 [[MySQL 5.5の変更点]] :: 1.4.2 [[InnoDB I/Oサブシステムの変更]] ORIGINAL : [[http://dev.mysql.com/doc/refman/5.5/en/innodb-io-changes.html]] ---- MySQL 5.5では、InnoDBのI/Oサブシステムを利用可能なI/Oキャパシティーをより有効に活用できるよう変更されています。 この変更点は、I/Oサブシステムの設定を詳細に制御する機能を提供します。 * バックグラウンドI/Oスレッド InnoDBは、いくつかのアクティビティーのI/Oにバックグラウンドスレッドを使っています。プリフェッチングディスクプロックとダーティーページのフラッシュ はこれらのうちの2例です。以前までは、InnoDBはこれらのアクティビティーを実行する為に1スレッドのみ利用していたので、サーバーの性能を十分に活用しない状況でした。MySQL5.5では、複数の読書きのスレッドをバックグラウンドで利用可能となり、ページの読書きを高速に出来るようになりました。 パッチはバックグラウンドのI/Oスレッド数をシステム変数を使ってコンフィグ可能にしています。innodb_read_io_threadsは読込のプリフェッチ要求に使うスレッド数を制御します。innodb_write_io_threadsは、バッファーキャッシュからディスクへのダーティページを書込むスレッド数を制御します。両変数のデフォルト値は4です。 I/Oスレッドを増加させられると、InnoDBで複数のディスクを使う際に恩恵が生まれます。しかしながら、実行されるI/Oのタイプについては考慮する必要があります。ダイレクトライトよりバッファードライトを使うシステムでは、書込みのスレッド数を1以上に増やしても、もうすでに書込みは速いので、ほとんど恩恵が産まれないでしょう。 * I/Oレートの調整 以前までは、InnoDBの単位時間当たりの入出力の命令数(IOPS)はコンパイル時間のパラメータでした。 Previously, the number of input/output operations per second (IOPS) that InnoDB will perform was a compile-time parameter. The rate was chosen to prevent background I/O from exhausting server capacity and the compiled-in value of 100 reflected an assumption that the server can perform 100 IOPS. However, many modern systems can exceed this, so the value is low and unnecessarily restricts I/O utilization. MySQL 5.5 exposes this I/O rate parameter as a system variable, innodb_io_capacity. This variable can be set at server startup, which enables higher values to be selected for systems capable of higher I/O rates. Having a higher I/O rate can help the server handle a higher rate of row changes because it may be able to increase dirty-page flushing, deleted-row removal, and application of changes to the insert buffer. The default value of innodb_io_capacity is 200. In general, you can increase the value as a function of the number of drives used for InnoDB I/O. The ability to raise the I/O limit should be especially beneficial on platforms that support many IOPS. For example, systems that use multiple disks or solid-state disks for InnoDB are likely to benefit from the ability to control this parameter.
&counter()人目 ( ̄ー ̄)/~~ アリガトネ [[MySQL5.5 リファレンス>トップページ]] :: 1. [[一般情報]] :: 1.4 [[MySQL 5.5の変更点]] :: 1.4.2 [[InnoDB I/Oサブシステムの変更]] ORIGINAL : [[http://dev.mysql.com/doc/refman/5.5/en/innodb-io-changes.html]] ---- MySQL 5.5では、InnoDBのI/Oサブシステムを利用可能なI/Oキャパシティーをより有効に活用できるよう変更されています。 この変更点は、I/Oサブシステムの設定を詳細に制御する機能を提供します。 * バックグラウンドI/Oスレッド InnoDBは、いくつかのアクティビティーのI/Oにバックグラウンドスレッドを使っています。プリフェッチングディスクプロックとダーティーページのフラッシュ はこれらのうちの2例です。以前までは、InnoDBはこれらのアクティビティーを実行する為に1スレッドのみ利用していたので、サーバーの性能を十分に活用しない状況でした。MySQL5.5では、複数の読書きのスレッドをバックグラウンドで利用可能となり、ページの読書きを高速に出来るようになりました。 パッチはバックグラウンドのI/Oスレッド数をシステム変数を使ってコンフィグ可能にしています。innodb_read_io_threadsは読込のプリフェッチ要求に使うスレッド数を制御します。innodb_write_io_threadsは、バッファーキャッシュからディスクへのダーティページを書込むスレッド数を制御します。両変数のデフォルト値は4です。 I/Oスレッドを増加させられると、InnoDBで複数のディスクを使う際に恩恵が生まれます。しかしながら、実行されるI/Oのタイプについては考慮する必要があります。ダイレクトライトよりバッファードライトを使うシステムでは、書込みのスレッド数を1以上に増やしても、もうすでに書込みは速いので、ほとんど恩恵が産まれないでしょう。 * I/Oレートの調整 以前までは、InnoDBの単位時間当たりの入出力の命令数(IOPS)はコンパイル時間のパラメータでした。 この値は、バックグラウンドI/Oが、サーバーの資源を使いつくさないように、サーバーが100IOPSの性能があるという前提で100IOPSを下回らないように定められています。しかしながら、最近のシステムはこれよりすぐれており、この値はI/Oの利用を制限する必要がありまなくなりました。 MySQL5.5は、このI/Oレートのパラメータをinnodb_io_capacityシステム変数としました。この変数は、サーバーをたちあげる際に設定出来、高いI/Oレートを持つシステムでは高い値をとれます。高I/Oレートを持つということは、ダーティーページのフラッシュ、削除された列のリムーブ、インサートバッファの変更の反映が高速にされるので、サーバーが列の変更をより高レートで行いやすくします。innodb_io_capacityの標準の値は200です。一般的には、InnoDBのI/Oに利用しているディスクドライブの数の関数として、値を変更します。 I/O制限をあげられる機能は、とりわけ高いIOPSをサポートするプラットフォームで有用です。 例えば、InnoDBに複数のディスク、またはSSDを使っているシステムではこのパラメータを制御することでメリットが得られます。

表示オプション

横に並べて表示:
変化行の前後のみ表示: