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::MMMMMMкласса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_namecode_area — значение, такое как sql или myisam, а instrument_name — деталь инструмента.
Инструменты с префиксом memory/performance_schema/ показывают, сколько памяти выделено для внутренних буферов в схеме производительности. Инструменты memory/performance_schema/ встроенные, всегда включены и не могут быть отключены при запуске или во время выполнения. Встроенные инструменты памяти отображаются только в таблице memory_summary_global_by_event_name. Дополнительная информация в Разделе 25.17, «Модель распределения памяти схемы производительности».
Элементы инструментов этапов
Имена инструментов этапов имеют вид stage/, где code_area/stage_namecode_area — значение, такое как sql или myisam, а stage_name указывает на этап обработки оператора, такой как Sorting result или Sending data. Этапы соответствуют состояниям потоков, отображаемых с помощью SHOW
PROCESSLIST или видимые в таблице схемы информации PROCESSLIST.
Элементы инструментов операторов
statement/abstract/*: Абстрактный инструмент для операций с операторами. Абстрактные инструменты используются на ранних стадиях классификации операторов, прежде чем станет известен точный тип оператора, затем изменяются на более конкретный инструмент оператора, когда тип становится известен. Описание этого процесса см. в Разделе 25.12.6, «Таблицы событий операторов схемы производительности».statement/com: Инструментированная операция команды. Эти имена соответствуют операциямCOM_(см. заголовочный файлxxxmysql_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операторов.
Элементы измерения ожидания
-
wait/ioОперация ввода-вывода с измерением.
-
wait/io/fileОперация ввода-вывода файла с измерением. Для файлов, время ожидания — это время ожидания завершения операции с файлом (например, вызова
fwrite()). Из-за кэширования физическое ввод-вывод файла на диске может не произойти в рамках этого вызова. -
wait/io/socketОперация сокета с измерением. Сокеты с измерением имеют имена вида
wait/io/socket/sql/. Сервер имеет сокет прослушивания для каждого сетевого протокола, который он поддерживает. Инструменты, связанные с сокетами прослушивания для подключений TCP/IP или Unix-сокетных файлов, имеют значениеsocket_typesocket_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.