Spec-Zone.ru › MySQL 8.4

29.6 Конвенции именования инструментов Performance Schema

Имя инструмента состоит из последовательности элементов, разделенных символами '/'. Примеры имён:

wait/io/file/myisam/log
wait/io/file/mysys/charset
wait/lock/table/sql/handler
wait/synch/cond/mysys/COND_alarm
wait/synch/cond/sql/BINLOG::update_cond
wait/synch/mutex/mysys/BITMAP_mutex
wait/synch/mutex/sql/LOCK_delete
wait/synch/rwlock/sql/Query_cache_query::lock
stage/sql/closing tables
stage/sql/Sorting result
statement/com/Execute
statement/com/Query
statement/sql/create_table
statement/sql/lock_tables
errors

Пространство имён инструментов имеет древовидную структуру. Элементы имени инструмента слева направо указывают на переход от более общего к более специфическому. Количество элементов в имени зависит от типа инструмента.

Интерпретация данного элемента в имени зависит от элементов слева от него. Например, myisam встречается в обоих следующих именах, но myisam в первом имени связано с вводом-выводом файлов, а во втором — с инструментом синхронизации:

wait/io/file/myisam/log
wait/synch/cond/myisam/MI_SORT_INFO::cond

Имена инструментов состоят из префикса, структура которого определяется реализацией Performance Schema, и суффикса, определяемого разработчиком, реализующим код инструмента. Элемент верхнего уровня префикса инструмента указывает на тип инструмента. Этот элемент также определяет, какой таймер событий в таблице performance_timers применяется к инструменту. Для префиксной части имён инструментов верхний уровень указывает тип инструмента.

Суффиксная часть имён инструментов берётся из кода самих инструментов. Суффиксы могут включать такие уровни:

  • Имя основного элемента (модуля сервера, такого как myisam, innodb, mysys или sql) или имя плагина.

  • Имя переменной в коде, в формате XXX (глобальная переменная) или CCC::MMM (член MMM в классе CCC). Примеры: COND_thread_cache, THR_LOCK_myisam, BINLOG::LOCK_index.

  • Элементы инструментов верхнего уровня

  • Элементы инструментов простоя

  • Элементы инструментов ошибок

  • Элементы инструментов памяти

  • Элементы инструментов стадии

  • Элементы инструментов операторов

  • Элементы инструментов потоков

  • Элементы инструментов ожидания

Элементы инструментов верхнего уровня

  • idle: Инструментированное событие простоя. Этот инструмент не имеет дополнительных элементов.

  • error: Инструментированное событие ошибки. Этот инструмент не имеет дополнительных элементов.

  • memory: Инструментированное событие памяти.

  • stage: Инструментированное событие стадии.

  • statement: Инструментированное событие оператора.

  • transaction: Инструментированное событие транзакции. Этот инструмент не имеет дополнительных элементов.

  • wait: Инструментированное событие ожидания.

Элементы инструментов простоя

Инструмент idle используется для событий простоя, которые Performance Schema генерирует, как описано в описании столбца socket_instances.STATE в Разделе 29.12.3.5, «Таблица socket_instances».

Элементы инструментов ошибок

Инструмент error указывает, собирать ли информацию об ошибках и предупреждениях сервера. Этот инструмент включён по умолчанию. Столбец TIMED для строки error в таблице setup_instruments неприменим, так как информация о времени выполнения не собирается.

Элементы инструментов памяти

Инструментация памяти включена по умолчанию. Инструментация памяти может быть включена или отключена при запуске или динамически во время выполнения путём обновления столбца ENABLED соответствующих инструментов в таблице setup_instruments. Имена инструментов памяти имеют вид memory/code_area/instrument_name, где code_area — значение, такое как sql или myisam, а instrument_name — детали инструмента.

Инструменты, имеющие префикс memory/performance_schema/, показывают, сколько памяти выделено для внутренних буферов в Performance Schema. Инструменты memory/performance_schema/ встроенные, всегда включены и не могут быть отключены при запуске или во время выполнения. Встроенные инструменты памяти отображаются только в таблице memory_summary_global_by_event_name. Для получения дополнительной информации см. Раздел 29.17, «Модель распределения памяти Performance Schema».

Элементы инструментов стадии

Имена инструментов стадии имеют вид stage/code_area/stage_name, где code_area — значение, такое как sql или myisam, а stage_name указывает на стадию обработки оператора, например, Sorting result или Sending data. Этапы соответствуют состояниям потоков, отображаемых командой SHOW PROCESSLIST или отображаемым в таблице схемы информации PROCESSLIST.

Элементы инструментов операторов

  • statement/abstract/*: Абстрактный инструмент для операций с операторами. Абстрактные инструменты используются на ранних стадиях классификации операторов, прежде чем будет известен точный тип оператора, затем меняются на более конкретный инструмент оператора, когда тип известен. Описание этого процесса см. в Разделе 29.12.6, «Таблицы событий операторов Performance Schema».

  • statement/com: Инструментированная операция команды. Эти имена соответствуют операциям COM_xxx (см. заголовочный файл mysql_com.h и sql/sql_parse.cc). Например, инструменты statement/com/Connect и statement/com/Init DB соответствуют командам COM_CONNECT и COM_INIT_DB.

  • statement/scheduler/event: Единый инструмент для отслеживания всех событий, выполняемых Планировщиком событий. Этот инструмент начинает действовать, когда запланированное событие начинает выполняться.

  • statement/sp: Инструментированная внутренняя инструкция, выполняемая хранимой программой. Например, инструменты statement/sp/cfetch и statement/sp/freturn используются для инструкций выборки курсора и возврата функций.

  • statement/sql: Инструментированная операция SQL-оператор. Например, инструменты statement/sql/create_db и statement/sql/select используются для операторов CREATE DATABASE и SELECT.

Элементы инструментов потоков

Инструментированные потоки отображаются в таблице setup_threads, которая предоставляет имена и атрибуты классов потоков.

Инструменты потоков начинаются с thread (например, thread/sql/parser_service или thread/performance_schema/setup).

Имена инструментов потоков для потоков плагина ndbcluster начинаются с thread/ndbcluster/; для получения дополнительной информации см. ndbcluster Plugin Threads.

Элементы инструмента ожидания

  • wait/io

    Оперирование I/O с инструментированием.

    • wait/io/file

      Операция I/O файла с инструментированием. Для файлов, время ожидания — это время ожидания завершения операции с файлом (например, вызов fwrite()). Из-за кэширования физическое I/O файла на диске может не произойти в рамках этого вызова.

    • wait/io/socket

      Операция сокета с инструментированием. Инструменты сокетов имеют имена вида wait/io/socket/sql/socket_type. Сервер имеет сокет прослушивания для каждого сетевого протокола, который он поддерживает. Инструменты, связанные с сокетами прослушивания для TCP/IP или сокетов Unix-файлов, имеют значение socket_type, равное соответственно server_tcpip_socket или server_unix_socket. При обнаружении соединения сокетом прослушивания сервер переносит соединение в новый сокет, управляемый отдельным потоком. Инструмент для нового потока соединения имеет значение socket_type, равное client_connection.

    • wait/io/table

      Операция I/O таблицы с инструментированием. Это включает доступ на уровне строк к постоянным базовым таблицам или временным таблицам. Операции, влияющие на строки, — это извлечение, вставка, обновление и удаление. Для представления ожидания связаны с базовыми таблицами, на которые ссылается представление.

      В отличие от большинства ожиданий, ожидание I/O таблицы может включать другие ожидания. Например, I/O таблицы может включать I/O файлов или операции с памятью. Таким образом, events_waits_current для ожидания I/O таблицы обычно имеет две строки. Более подробная информация приведена в разделе 29.8, «События Performance Schema атомов и молекул».

      Некоторые операции со строками могут вызывать несколько ожиданий I/O таблиц. Например, вставка может активировать триггер, который вызывает обновление.

  • wait/lock

    Операция блокировки с инструментированием.

    • wait/lock/table

      Операция блокировки таблицы с инструментированием.

    • wait/lock/metadata/sql/mdl

      Операция блокировки метаданных с инструментированием.

  • wait/synch

    Инструментированный объект синхронизации. Для объектов синхронизации время TIMER_WAIT включает время блокировки при попытке получить блокировку объекта, если таковая имеется.

    • wait/synch/cond

      Условие используется одним потоком для сигнализации другим потокам о том, что чего-то, что они ожидали, произошло. Если один поток ждал условия, он может проснуться и продолжить выполнение. Если несколько потоков ожидали, они все могут проснуться и конкурировать за ресурс, которого они ожидали.

    • wait/synch/mutex

      Объект взаимного исключения, используемый для разрешения доступа к ресурсу (например, участку исполняемого кода), предотвращая доступ к ресурсу другим потокам.

    • wait/synch/prlock

      Объект блокировки с приоритетом.

    • wait/synch/rwlock

      Простой объект, используемый для блокировки конкретной переменной для доступа, предотвращая ее использование другими потоками. Общую блокировку чтения могут получить одновременно несколько потоков. Исключительную блокировку записи может получить только один поток за раз.

    • wait/synch/sxlock

      Блокировка совместного исключения (SX) — это тип объекта блокировки, предоставляющий доступ для записи к общему ресурсу, одновременно разрешая несовместимые чтения другими потоками. sxlocks оптимизировать параллелизм и повысить масштабируемость для рабочих нагрузок чтения-записи.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/performance-schema-instrument-naming.html

Spec-Zone.ru

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