25.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.