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 リファレンスマニュアル  /  ...  /  スレッドプールコンポーネントとインストール

8.11.6.1 スレッドプールコンポーネントとインストール

スレッドプール機能は次のコンポーネントで構成されます。

  • プラグインライブラリオブジェクトファイルには、スレッドプールコード用のプラグインと、いくつかの INFORMATION_SCHEMA テーブル用のプラグインが含まれています。

    スレッドプールの仕組みの詳細については、セクション8.11.6.2「スレッドプール操作」を参照してください。

    INFORMATION_SCHEMA テーブルには、TP_THREAD_STATETP_THREAD_GROUP_STATE、および TP_THREAD_GROUP_STATS という名前が付けられています。これらのテーブルは、スレッドプール操作に関する情報を提供します。詳細については、セクション21.31「スレッドプールの INFORMATION_SCHEMA テーブル」を参照してください。

  • いくつかのシステム変数がスレッドプールに関連しています。thread_handling システム変数は、サーバーがスレッドプールプラグインを正常にロードしたときに、loaded-dynamically の値になります。

    ほかの関連の変数はスレッドプールプラグインによって実装されます。それが有効にされていない場合、それらは使用できません。

    • thread_pool_algorithm: スケジューリングに使用する並列性アルゴリズム。

    • thread_pool_high_priority_connection: セッションのステートメント実行のスケジュール方法。

    • thread_pool_prio_kickup_timer: スレッドプールが、実行を待機しているステートメントを低優先度キューから高優先度キューに移動するまでの時間。

    • thread_pool_max_unused_threads: 許可するスリープ中のスレッド数。

    • thread_pool_size: スレッドプール内のスレッドグループの数。これはスレッドプールのパフォーマンスを制御するもっとも重要なパラメータです。

    • thread_pool_stall_limit: 実行中のステートメントが停滞しているとみなされるまでの時間。

    起動時に、プラグインによって実装されているいずれかの変数が不正な値に設定された場合、プラグインの初期化が失敗し、プラグインはロードされません。

    スレッドプールパラメータの設定については、セクション8.11.6.3「スレッドプールのチューニング」を参照してください。

  • パフォーマンススキーマは、スレッドプールに関する情報を公開し、操作のパフォーマンスの調査に使用できます。詳細については、第22章「MySQL パフォーマンススキーマを参照してください。

サーバーが使用できるように、スレッドプールライブラリオブジェクトファイルは MySQL プラグインディレクトリ (plugin_dir システム変数によって指定されたディレクトリ) に存在する必要があります。スレッドプール機能を有効にするには、--plugin-load オプションでサーバーを起動することによって、使用されるプラグインをロードします。たとえば、プラグインオブジェクトファイルだけを指定した場合、サーバーはそれに含まれるすべてのプラグイン (つまり、スレッドプールプラグインとすべての INFORMATION_SCHEMA テーブル) をロードします。これを実行するには、これらの行を my.cnf ファイルに挿入します。

[mysqld]
plugin-load=thread_pool.so

それは、個別にスレッドプールプラグインを指定して、それらをすべてロードするのと同等です。

[mysqld]
plugin-load=thread_pool.so
plugin-load=thread_pool=thread_pool.so;tp_thread_state=thread_pool.so;tp_thread_group_state=thread_pool.so;tp_thread_group_stats=thread_pool.so

システム上のオブジェクトファイルのサフィクスが .so とは異なる場合、正しいサフィクスに置き換えてください (たとえば Windows の場合は .dll)。

必要に応じて、サーバーにプラグインディレクトリの場所を伝えるために、plugin_dir システム変数の値を設定します。

必要な場合、ライブラリファイルから個々のプラグインをロードできます。スレッドプールプラグインをロードするが、INFORMATION_SCHEMA テーブルはロードしない場合、次のようなオプションを使用します。

[mysqld]
plugin-load=thread_pool=thread_pool.so

スレッドプールプラグインと TP_THREAD_STATE INFORMATION_SCHEMA テーブルのみをロードするには、次のようなオプションを使用します。

[mysqld]
plugin-load=thread_pool=thread_pool.so;TP_THREAD_STATE=thread_pool.so

ただし、すべての INFORMATION_SCHEMA テーブルをロードしない場合、一部またはすべての MySQL Enterprise Monitor スレッドプールグラフが空になります。

プラグインのインストールを検証するには、INFORMATION_SCHEMA.PLUGINS テーブルを調査するか、SHOW PLUGINS ステートメントを使用します。セクション5.1.8.2「サーバープラグイン情報の取得」を参照してください。

サーバーはスレッドプラグインを正常にロードしたら、thread_handling システム変数を dynamically-loaded に設定します。プラグインのロードに失敗した場合、サーバーはエラーログにメッセージを書き込みます。


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