Documentation Home

22.4.4 按仪器预过滤

setup_instruments表列出了可用的工具:

Press CTRL+C to copy
mysql> SELECT * 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列设置为YESNO。要配置是否为启用的仪器收集计时信息,请将其 TIMED值设置为YESNO。设置TIMED 列会影响 Performance Schema 表内容,如 第 22.4.1 节,“Performance Schema Event Timing”中所述。

对大多数 setup_instruments行的修改会立即影响监控。对于某些仪器,修改仅在服务器启动时有效;在运行时更改它们没有效果。这主要影响服务器中的互斥体、条件和 rwlocks,尽管可能有其他工具也是如此。

setup_instruments表提供了对事件生成的最基本控制形式。为了根据正在监视的对象或线程的类型进一步细化事件生成,可以使用其他表,如第 22.4.3 节,“事件预过滤”中所述。

以下示例演示了对 setup_instruments表的可能操作。与其他预过滤操作一样,这些更改会影响所有用户。其中一些查询使用LIKE 运算符和模式匹配工具名称。有关指定模式以选择仪器的其他信息,请参阅 第 22.4.9 节,“为过滤操作命名仪器或消费者”

  • 禁用所有仪器:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = 'NO';

    现在没有收集任何事件。

  • 禁用所有文件工具,将它们添加到当前的禁用工具集中:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME LIKE 'wait/io/file/%';
  • 仅禁用文件工具,启用所有其他工具:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = IF(NAME LIKE 'wait/io/file/%', 'NO', 'YES');
  • 启用库中除那些乐器以外的所有乐器 mysys

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = CASE WHEN NAME LIKE '%/mysys/%' THEN 'YES' ELSE 'NO' END;
  • 禁用特定仪器:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
  • 要切换仪器的状态,翻转 它的ENABLED值:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = IF(ENABLED = 'YES', 'NO', 'YES') WHERE NAME = 'wait/synch/mutex/mysys/TMPDIR_mutex';
  • 禁用所有事件的计时:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET TIMED = 'NO';