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/%';
© 2025 Oracle
Licensed under the GPLv2 License.