-
Notifications
You must be signed in to change notification settings - Fork 111
Pre Filtering 事件配置
xiaoboluo768 edited this page Jun 8, 2020
·
2 revisions
-
前面讲过"Pre-Filtering"是通过修改performance_schema中的相关配置表来实现,而且影响是全局所有用户,也提到了"Pre-Filtering"配置是通过需改setup_instruments和setup_consumers等配置表来实现,这些表实际上还分为生产阶段(instruments采集事件数据阶段)和消费阶段(采集事件数据保存在consumers相关的表阶段)两个阶段,本小节将对"Pre-Filtering"事件如何配置这两个阶段进行详细讲解。
-
要在生产阶段配置"Pre-Filtering",可以使用几个表:
- setup_instruments配置哪些instruments可用。当在此表中禁用某个instruments时,不考虑其他相关配置表中如何设置,此时被禁用的instruments不会收集对应的事件。当在此表中某个instruments被启用时,该instruments最终是否会执行采集工作还受到其他配置表中的设置影响,需要相关的配置表中都启用,该instruments才会真正执行收集工作
- 除了setup_instruments可以开关instruments之外,其他开关instruments的配置表如下:
- setup_objects:控制performance_schema是否开启监视特定的表和存储程序对象
- threads:控制是否开启线程对象监视
- setup_actors:控制是否开启某个来源的前台线程监控
- setup_consumers配置哪些事件需要记录到performance_schema表,决定着instruments采集的事件数据发送到哪里保存,注意: setup_consumers配置表也会隐含地影响事件生成(采集)。如果某事件开启了采集功能,但是consumers 没有打开,那么instruments采集到数据之后就不知道应该发送到哪里保存(即没有consumers来消耗这些事件采集信息),那么,此时performance_schema就不会执行 对应的instruments采集动作
-
虽然这些配置表的任何修改会立即生效,立即影响监控,但有一些例外:
- setup_instruments表中某些instruments的修改,需要在服务器启动时才有效,在运行时更改配置不生效(如:互斥体,condition和rwlock类型事件,但这个限制在MySQL 5.7.12中被解除)
- 对setup_actors表的修改仅影响修改配置后创建的前台线程,而不影响修改前的前台线程
-
对于setup_consumers表的修改,例如关闭了某个事件的consumers,那么对于performance_schema库下这个事件的current和history表中的数据不会被立即清理,只是不会再记录新的数据。已经收集的事件信息仍然会保留在当前事件和历史记录表中,直到较新的事件记录写入到这些表中才会被覆盖。这些表可以使用TRUNCATE TABLE语句清空
-
参考链接:https://dev.mysql.com/doc/refman/5.7/en/performance-schema-pre-filtering.html
上一篇: performance_schema事件过滤配置 | 下一篇: Pre Filtering by instruments
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!