パフォーマンススキーマは、次のメモリー割り当てモデルを使用します:
サーバー起動時にメモリーを割り当てることができます
サーバー操作中に追加のメモリーを割り当てることができます
サーバー操作中にメモリーを解放しないでください (ただし、リサイクルされている可能性があります)
シャットダウン時に使用されたすべてのメモリーを解放
その結果、パフォーマンススキーマを少ない構成で使用できるようにメモリー制約が緩和され、サーバー負荷で消費量がスケーリングされるようにメモリーフットプリントが減少します。 使用されるメモリーは、見積もられた負荷や明示的に構成された負荷ではなく、実際に見られる負荷によって異なります。
いくつかのパフォーマンススキーマのサイズ変更パラメータは自動調整されるため、メモリー割り当ての明示的な制限を確立しないかぎり、明示的に構成する必要はありません:
performance_schema_accounts_size
performance_schema_hosts_size
performance_schema_max_cond_instances
performance_schema_max_file_instances
performance_schema_max_index_stat
performance_schema_max_metadata_locks
performance_schema_max_mutex_instances
performance_schema_max_prepared_statements_instances
performance_schema_max_program_instances
performance_schema_max_rwlock_instances
performance_schema_max_socket_instances
performance_schema_max_table_handles
performance_schema_max_table_instances
performance_schema_max_table_lock_stat
performance_schema_max_thread_instances
performance_schema_users_size
自動スケールパラメータの場合、構成は次のように機能します:
-
値を -1 (デフォルト) に設定すると、パラメータは自動スケールされます:
対応する内部バッファは最初は空で、メモリーは割り当てられません。
パフォーマンススキーマがデータを収集すると、対応するバッファーにメモリーが割り当てられます。 バッファサイズは無制限で、負荷に伴って大きくなる可能性があります。
-
値を 0 に設定した場合:
対応する内部バッファは最初は空で、メモリーは割り当てられません。
-
値が
N
> 0 に設定されている場合:対応する内部バッファは最初は空で、メモリーは割り当てられません。
パフォーマンススキーマがデータを収集すると、バッファーサイズが
N
に達するまで、対応するバッファーにメモリーが割り当てられます。バッファサイズが
N
に達すると、メモリーはこれ以上割り当てられません。 このバッファーのパフォーマンススキーマによって収集されたデータは失われ、対応する「「失われたインスタンス」」カウンタは増分されます。
パフォーマンススキーマが使用しているメモリー量を確認するには、その目的に合わせて設計されたインストゥルメントを確認します。 パフォーマンススキーマはメモリーを内部的に割り当て、各バッファーを専用インストゥルメントに関連付けて、メモリー消費を個々のバッファーにトレースできるようにします。 接頭辞 memory/performance_schema/
で指定されたインストゥルメントは、これらの内部バッファに割り当てられているメモリー量を公開します。 バッファはサーバーに対してグローバルであるため、インストゥルメントは memory_summary_global_by_event_name
テーブルにのみ表示され、他の memory_summary_by_
テーブルには表示されません。
xxx
_by_event_name
このクエリーは、メモリーインストルメントに関連付けられた情報を表示します:
SELECT * FROM performance_schema.memory_summary_global_by_event_name
WHERE EVENT_NAME LIKE 'memory/performance_schema/%';