Spec-Zone.ru › MySQL 5.7

25.6 Схемы производительности Инструментария Имена

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 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 операторов.

END_OF_DOCUMENT_MARKER

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

  • wait/io

    Операция ввода-вывода с измерением.

    • wait/io/file

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

    • 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

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

      В отличие от большинства ожиданий, ожидание ввода-вывода таблицы может включать другие ожидания. Например, ввод-вывод таблицы может включать ввод-вывод файла или операции с памятью. Таким образом, events_waits_current для ожидания ввода-вывода таблицы обычно имеет две строки. Дополнительную информацию см. в Разделе 25.8 «События Performance Schema Atom и Molecule».

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

  • wait/lock

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

    • wait/lock/table

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

    • wait/lock/metadata/sql/mdl

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

  • wait/synch

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

    • wait/synch/cond

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

    • wait/synch/mutex

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

    • wait/synch/rwlock

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

    • wait/synch/sxlock

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

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

Spec-Zone.ru

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