Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


MySQL 8.0 リファレンスマニュアル  /  MySQL パフォーマンススキーマ  /  パフォーマンススキーマのメモリー割り当てモデル

このページは機械翻訳したものです。

27.17 パフォーマンススキーマのメモリー割り当てモデル

パフォーマンススキーマは、次のメモリー割り当てモデルを使用します:

  • サーバー起動時にメモリーを割り当てることができます

  • サーバー操作中に追加のメモリーを割り当てることができます

  • サーバー操作中にメモリーを解放しないでください (ただし、リサイクルされている可能性があります)

  • シャットダウン時に使用されたすべてのメモリーを解放

その結果、パフォーマンススキーマを少ない構成で使用できるようにメモリー制約が緩和され、サーバー負荷で消費量がスケーリングされるようにメモリーフットプリントが減少します。 使用されるメモリーは、見積もられた負荷や明示的に構成された負荷ではなく、実際に見られる負荷によって異なります。

いくつかのパフォーマンススキーマのサイズ変更パラメータは自動調整されるため、メモリー割り当ての明示的な制限を確立しないかぎり、明示的に構成する必要はありません:

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/%';