Spec-Zone.ru › MySQL 8.4

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

Spec-Zone.ru

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