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


22.2.2 パフォーマンススキーマ起動構成

パフォーマンススキーマを使用できるものとして、MySQL 5.6.6 以降、それはデフォルトで有効にされます。5.6.6 より前では、それはデフォルトで無効にされます。それを明示的に有効または無効にするには、performance_schema 変数を適切な値に設定して、サーバーを起動します。たとえば、my.cnf ファイルでこれらの行を使用します。

[mysqld]
performance_schema=on

パフォーマンススキーマの初期化時に、サーバーが内部バッファーを割り当てることができない場合、パフォーマンススキーマは自動的に無効になり、performance_schemaOFF に設定して、サーバーがインストゥルメンテーションなしで実行します。

MySQL 5.6.4 以降、パフォーマンススキーマは、サーバー起動時のインストゥルメントおよびコンシューマの構成を許可します。これは、以前 setup_instruments および setup_consumers テーブルに UPDATE ステートメントを使用して、実行時にのみ可能でした。この変更は、サーバーの起動時にすでに初期化されているインストゥルメントを、実行時の構成で無効にするには遅すぎるために行われました。たとえば、wait/synch/mutex/sql/LOCK_open 相互排他ロックはサーバー起動時に 1 回初期化されるため、実行時に対応するインストゥルメントを無効にする試みは無効です。

サーバー起動時のインストゥルメントを制御するには、この形式のオプションを使用します。

--performance-schema-instrument='instrument_name=value'

ここで instrument_namewait/synch/mutex/sql/LOCK_open などのインストゥルメント名で、value はこれらのいずれかの値です。

  • offfalse、または 0: インストゥルメントを無効にします

  • ontrue、または 1: インストゥルメントを有効にして時間を測定します

  • counted: インストゥルメントを有効にしてカウント (時間測定ではなく) します

--performance-schema-instrument オプションではインストゥルメント名を 1 つしか指定できませんが、オプションの複数のインスタンスを指定して、複数のインストゥルメントを構成できます。さらに、インストゥルメント名にパターンを使用でき、パターンに一致するインストゥルメントを構成します。すべての条件同期インストゥルメントを有効で、カウント対象として構成するには、次のオプションを使用します。

--performance-schema-instrument='wait/synch/cond/%=counted'

すべてのインストゥルメントを無効にするには、次のオプションを使用します。

--performance-schema-instrument='%=off'

長いインストゥルメント名文字列は、順序に関係なく、短いパターン名より優先されます。インストゥルメントを選択するためのパターンの指定については、セクション22.2.3.4「フィルタリング操作のインストゥルメントまたはコンシューマの指定」を参照してください。

認識されないインストゥルメント名は無視されます。あとでインストールされたプラグインによってインストゥルメントを作成することは可能で、そのときに名前が認識され、構成されます。

サーバー起動時のコンシューマを制御するには、この形式のオプションを使用します。

--performance-schema-consumer-consumer_name=value

ここで、consumer_nameevents_waits_history などのコンシューマ名で、value はこれらのいずれかです。

  • offfalse、または 0: コンシューマのイベントを収集しません

  • ontrue、または 1: コンシューマのイベントを収集します

たとえば、events_waits_history コンシューマを有効にするには、次のオプションを使用します。

--performance-schema-consumer-events-waits-history=on

許可されるコンシューマ名は、setup_consumers テーブルを調べるとわかります。パターンは許可されません。setup_consumers テーブル内のコンシューマ名は下線が使われますが、起動時に設定されたコンシューマでは、名前の中のダッシュと下線は同等です。

パフォーマンススキーマには、構成情報を提供するいくつかのシステム変数が含まれます。

mysql> SHOW VARIABLES LIKE 'perf%';
+--------------------------------------------------------+---------+
| Variable_name                                          | Value   |
+--------------------------------------------------------+---------+
| performance_schema                                     | ON      |
| performance_schema_accounts_size                       | 100     |
| performance_schema_digests_size                        | 200     |
| performance_schema_events_stages_history_long_size     | 10000   |
| performance_schema_events_stages_history_size          | 10      |
| performance_schema_events_statements_history_long_size | 10000   |
| performance_schema_events_statements_history_size      | 10      |
| performance_schema_events_waits_history_long_size      | 10000   |
| performance_schema_events_waits_history_size           | 10      |
| performance_schema_hosts_size                          | 100     |
| performance_schema_max_cond_classes                    | 80      |
| performance_schema_max_cond_instances                  | 1000    |
...

performance_schema 変数は ON または OFF で、パフォーマンススキーマが有効か無効かを示します。ほかの変数はテーブルサイズ (行数) やメモリー割り当て値を示します。

注記

パフォーマンススキーマが有効にされている場合、パフォーマンススキーマインスタンスの数は、おそらく大きくサーバーメモリーフットプリントに影響します。パフォーマンススキーマのシステム変数の値をチューニングして、インストゥルメントの不足と過剰なメモリー消費のバランスをとるインスタンスの数を見つける必要がある可能性があります。

パフォーマンススキーマシステム変数の値を変更するには、それらをサーバー起動時に設定します。たとえば、my.cnf ファイルに、履歴テーブルのサイズを変更するために次の行を入れます。

[mysqld]
performance_schema
performance_schema_events_waits_history_size=20
performance_schema_events_waits_history_long_size=15000

MySQL 5.6.6 以降、パフォーマンススキーマは、そのパラメータのいくつかの値を、それらが明示的に設定されていない場合に、サーバーの起動時に自動的にサイズ設定します。たとえば、それはイベント待機テーブルのサイズを制御するパラメータをこのようにサイズ設定します。どのパラメータがこのポリシーでサイズ設定されるかを確認するには、mysqld --verbose --help を使用し、−1 のデフォルト値を持つものを探すか、セクション22.12「パフォーマンススキーマシステム変数」を参照してください。

サーバー起動時に設定されていない (または −1 に設定されている) 自動サイズ設定される各パラメータについて、パフォーマンススキーマは、次のシステム変数の値に基づいてその値を設定する方法を判断します。それらは、MySQL サーバーをどのように構成しているかに関するヒントとみなされます。

max_connections
open_files_limit
table_definition_cache
table_open_cache

特定のパラメータの自動サイズ設定をオーバーライドするには、起動時にそれに −1 以外の値を設定します。この場合、パフォーマンススキーマはそれに指定された値を割り当てます。

実行時に、SHOW VARIABLES では、自動サイズ設定されたパラメータに設定されていた実際の値が表示されます。

パフォーマンススキーマが無効にされている場合、その自動サイズ設定されたパラメータは −1 に設定されたままになり、SHOW VARIABLES では −1 が表示されます。