Spec-Zone.ru › MySQL 5.7

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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/performance-schema-memory-model.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API