文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  MySQL Performance Schema  /  Performance Schema 的記憶體配置模型

29.17 Performance Schema 的記憶體配置模型

Performance Schema 使用此記憶體配置模型

  • 可能會在伺服器啟動時配置記憶體

  • 可能會在伺服器運作期間配置額外記憶體

  • 在伺服器運作期間永遠不會釋放記憶體(儘管可能會回收)

  • 在關機時釋放所有使用的記憶體

結果是放寬記憶體限制,以便可以使用較少的組態來使用 Performance Schema,並減少記憶體佔用空間,使消耗量隨著伺服器負載而擴展。使用的記憶體取決於實際看到的負載,而不是估計或明確配置的負載。

幾個 Performance Schema 大小調整參數會自動調整,除非您想要建立明確的記憶體配置限制,否則不需要明確配置

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(預設值),則參數會自動調整

    • 對應的內部緩衝區最初是空的,並且不配置任何記憶體。

    • 當 Performance Schema 收集資料時,會在對應的緩衝區中配置記憶體。緩衝區大小沒有上限,可能會隨著負載而增加。

  • 若值設定為 0

    • 對應的內部緩衝區最初是空的,並且不配置任何記憶體。

  • 若值設定為 N > 0

    • 對應的內部緩衝區最初是空的,並且不配置任何記憶體。

    • 當 Performance Schema 收集資料時,會在對應的緩衝區中配置記憶體,直到緩衝區大小達到 N

    • 一旦緩衝區大小達到 N,就不會再配置記憶體。Performance Schema 為此緩衝區收集的資料會遺失,並且任何對應的 遺失的實例計數器都會遞增。

若要查看 Performance Schema 使用多少記憶體,請檢查為此目的設計的工具。Performance Schema 會在內部配置記憶體,並將每個緩衝區與專用工具關聯,以便可以追蹤記憶體消耗量到個別的緩衝區。名稱以 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/%';