5.2性能模式事件过滤

事件以生产者/消费者方式处理:

  • 检测代码是事件的源,并产生要收集的事件。的setup_instruments下表列出了可以收集事件的工具,它们是否被启用,以及(对于启用的工具)是否收集定时信息:

    SELECT NAME, ENABLED, TIMED FROM performance_schema.setup_instruments;+---------------------------------------------------+---------+-------+ | 名字| |定时启用  | +---------------------------------------------------+---------+-------+ ...| wait/sync /mutex/sql/LOCK_global_read_lock | YES | YES | | wait/sync /mutex/sql/LOCK_global_system_variables | YES | YES | | wait/sync /mutex/sql/LOCK_lock_db | YES | YES | | wait/sync /mutex/sql/LOCK_manager | YES | YES |…

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

  • 性能模式表是事件和消费事件的目的地。的setup_consumers下表列出了事件信息可以发送到的消费者类型,以及它们是否已启用:

    mysql> SELECT * FROM performance_schema.setup_consumers;+----------------------------------+---------+ | 启用名字|  | +----------------------------------+---------+ | events_stages_current没有| | | events_stages_history没有| | | events_stages_history_long没有| | | events_statements_current |是| | events_statements_history |是| | events_statements_history_long没有| | | events_transactions_current |是| | events_transactions_history |是| | events_transactions_history_long没有| | | events_waits_current没有| | | events_waits_history | ||events_waits_history_long | NO | | global_instrumentation | YES | | thread_instrumentation | YES | | statements_digest | YES | +----------------------------------+---------+

过滤可以在性能监视的不同阶段进行:

  • 预滤器。这是通过修改Performance Schema配置来实现的,以便只从生产者收集某些类型的事件,而收集的事件只更新某些消费者。为此,启用或禁用仪器或使用者。预过滤由性能模式完成,具有适用于所有用户的全局效果。

    使用预过滤的原因:

    • 减少开销。即使启用了所有工具,性能模式开销也应该是最小的,但是您可能希望进一步减少它。或者您不关心计时事件,希望禁用计时代码以消除计时开销。

    • 避免在当前事件或历史表中填充您不感兴趣的事件。预过滤叶子更多房间在这些表中为启用仪器类型的行实例。如果只启用带预过滤的文件工具,则不收集非文件工具的行。使用后过滤,将收集非文件事件,为文件事件留下更少的行。

    • 避免维护某些类型的事件表。如果禁用某个使用者,服务器就不会花时间维护该使用者的目的地。例如,如果不关心事件历史,可以禁用历史表消费者以提高性能。

  • 后过滤。这涉及到的使用在哪里子句从性能模式表中选择信息,以指定希望查看哪些可用事件。后过滤是在每个用户的基础上执行的,因为各个用户可以选择感兴趣的可用事件。

    使用后过滤的原因:

    • 避免为个别用户决定哪些事件信息是感兴趣的。

    • 当预先不知道要使用预过滤施加的限制时,使用性能模式来调查性能问题。

以下部分提供了关于预过滤的更多详细信息,并提供了在过滤操作中命名工具或消费者的指南。有关编写查询以检索信息(后过滤)的信息,请参见第六章,性能模式查询