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