MySQL多数据库实例的事件监控支持,主要是指通过MySQL的企业级监控工具——Performance Schema和sys schema来实现对MySQL实例的实时监控。

Performance Schema
Performance Schema是MySQL的一个性能监测工具,它提供了一个低开销的方法来监视MySQL服务器执行的各种类型的事件,包括查询执行、InnoDB存储引擎操作、互斥锁、内存分配等。
主要事件类别:
**Concurrency_系列监控并发相关的事件,如锁等待、死锁检测等。
**Memory_系列监控内存使用情况,例如内存分配和释放。

**Statements_系列监控SQL语句执行情况,记录每条SQL语句的执行时间、错误次数等。
**Transactions_系列监控事务相关的事件,如事务提交和回滚。
**Mutex_和 RWLock_* 系列监控互斥量和读写锁的使用情况。
sys schema
sys schema是一个帮助用户更好地理解和优化MySQL, MariaDB, and Percona Server的系统视图集合,它提供了一种机制来简化查询Performance Schema数据的过程。

常用视图示例:
statements_summary_by_digest:显示每个唯一查询摘要的性能数据汇总。
statements_summary_by_account_by_event_name:按用户账户和事件名称分组的语句摘要。
innodb_buffer_stats_by_schema_and_index:按模式和索引分组的InnoDB缓冲池统计信息。
memory_by_thread_by_current_bytes:按当前字节大小排序的线程内存使用情况。
memory_global_by_current_bytes:全局内存使用情况。
配置与启用
要启用这些监控功能,需要在MySQL配置文件中进行设置,并重启服务。
[mysqld] performance_schema=ON 启用特定消费者,如events_statements_history_long performance_schema_consumer_events_statements_history_long=ON 启用特定表,如events_statements_summary_by_digest performance_schema_table_map=events_statements_summary_by_digest=CONSUMER
可以使用如下命令查看当前已启用的消费者和表:
SELECT * FROM performance_schema.setup_consumers; SELECT * FROM performance_schema.setup_tables;
问题与解答
Q1: 如何在不重启MySQL的情况下动态开启或关闭Performance Schema中的事件?
A1: 你可以使用SET
命令动态地更改performance_schema
的配置。
SET GLOBAL performance_schema='ON'; SET GLOBAL performance_schema_consumer_enabled='yes';
Q2: 如何限制Performance Schema占用的资源?
A2: 可以通过设置performance_schema_instrument
变量来控制哪些事件被监控,进而控制资源消耗。
SET PERSIST GLOBAL performance_schema_instrument='%=on'; # 监控所有事件 SET PERSIST GLOBAL performance_schema_instrument='statement/%=off'; # 关闭所有statement相关事件的监控
通过这种方式,管理员可以根据实际需要灵活调整监控策略,以平衡监控需求和系统资源的消耗。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复