MySQL 8.4 发行说明
setup_instruments
表列出了可用的监测项。
mysql> SELECT NAME, ENABLED, TIMED
FROM performance_schema.setup_instruments;
+---------------------------------------------------+---------+-------+
| NAME | ENABLED | TIMED |
+---------------------------------------------------+---------+-------+
...
| stage/sql/end | NO | NO |
| stage/sql/executing | NO | NO |
| stage/sql/init | NO | NO |
| stage/sql/insert | NO | NO |
...
| statement/sql/load | YES | YES |
| statement/sql/grant | YES | YES |
| statement/sql/check | YES | YES |
| statement/sql/flush | YES | YES |
...
| wait/synch/mutex/sql/LOCK_global_read_lock | YES | YES |
| wait/synch/mutex/sql/LOCK_global_system_variables | YES | YES |
| wait/synch/mutex/sql/LOCK_lock_db | YES | YES |
| wait/synch/mutex/sql/LOCK_manager | YES | YES |
...
| wait/synch/rwlock/sql/LOCK_grant | YES | YES |
| wait/synch/rwlock/sql/LOGGER::LOCK_logger | YES | YES |
| wait/synch/rwlock/sql/LOCK_sys_init_connect | YES | YES |
| wait/synch/rwlock/sql/LOCK_sys_init_slave | YES | YES |
...
| wait/io/file/sql/binlog | YES | YES |
| wait/io/file/sql/binlog_index | YES | YES |
| wait/io/file/sql/casetest | YES | YES |
| wait/io/file/sql/dbopt | YES | YES |
...
要控制是否启用监测项,请将其 ENABLED
列设置为 YES
或 NO
。要配置是否为启用的监测项收集计时信息,请将其 TIMED
值设置为 YES
或 NO
。设置 TIMED
列会影响性能模式表的内容,如 第 29.4.1 节“性能模式事件计时” 中所述。
对大多数 setup_instruments
行的修改会立即影响监控。对于某些监测项,修改仅在服务器启动时生效;在运行时更改它们无效。这主要影响服务器中的互斥锁、条件和读写锁,但可能还有其他监测项也是如此。
setup_instruments
表提供了对事件生成的最基本控制形式。要根据正在监控的对象或线程的类型进一步优化事件生成,可以使用其他表,如 第 29.4.3 节“事件预过滤” 中所述。
以下示例演示了对 setup_instruments
表的可能操作。这些更改与其他预过滤操作一样,会影响所有用户。其中一些查询使用 LIKE
运算符和模式匹配监测项名称。有关指定模式以选择监测项的更多信息,请参阅 第 29.4.9 节“为过滤操作命名监测项或消费者”。
禁用所有监测项
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO';
现在不收集任何事件。
禁用所有文件监测项,将它们添加到当前禁用的监测项集中
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME LIKE 'wait/io/file/%';
仅禁用文件监测项,启用所有其他监测项
UPDATE performance_schema.setup_instruments SET ENABLED = IF(NAME LIKE 'wait/io/file/%', 'NO', 'YES');
启用除
mysys
库中的监测项之外的所有监测项UPDATE performance_schema.setup_instruments SET ENABLED = CASE WHEN NAME LIKE '%/mysys/%' THEN 'YES' ELSE 'NO' END;
禁用特定监测项
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
要切换监测项的状态,请““翻转”” 其
ENABLED
值UPDATE performance_schema.setup_instruments SET ENABLED = IF(ENABLED = 'YES', 'NO', 'YES') WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
禁用所有事件的计时
UPDATE performance_schema.setup_instruments SET TIMED = 'NO';