10bet网址
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr)- 26.8Mb
PDF (A4)- 26.8Mb


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 が表示されます。