查询监控

本文档主要介绍了如何使用 YMatrix 的图形化界面分析、管理数据库的活跃查询及阻塞查询。

YMatrix 支撑业务运行时常常需要执行海量的查询,为方便我们日常监控查询的运行状态,查询监控功能实时提供数据库活跃查询及阻塞查询信息,帮助我们管理和分析慢查询和查询阻塞情况,提高数据库服务效率。

慢查询是指数据库中查询时间超过指定阈值的 SQL,它是数据库的性能杀手,也是业务优化数据库访问的重要抓手。查询监控展示了数据库当前存在的、指定条件的慢查询信息,帮助你管理和分析慢查询,提高数据库服务效率。

1 准备工作

首先,你需要登录图形化界面。在浏览器里输入 MatrixGate 所在机器的 IP(默认是 Master 的 IP)、端口号:

http://<IP>:8240

2 查询监控

2.1 活跃会话

2.1.1 活跃会话列表

登录之后点击左侧导航栏的“查询监控”。进入“活跃会话”页面。

  1. 查询列表数据来源于 pg_stat_activity,默认按照 query_start 时间倒序排序,列表内容 10秒 自动刷新一次,若需要仔细查看列表中的某一条信息,可以暂停刷新,防止自动刷新功能过滤掉正在查看的会话。为了降低频繁自动刷新带来的负载,当你退出查询监控页面时,系统将暂停自动刷新。
  2. 查询列表默认展示 active + idle in transaction 状态的查询, state 状态栏上可以点击任意状态来筛选列表内容,每个状态块中显示的是 状态+ 处于该状态的会话数量

idle in transaction 的说明
该状态表示查询语句已经执行完成,但是对应事务还未提交或回滚。需要注意的是,此状态下的语句,虽然不占用 CPU 和 I/O 等资源,但是会占用连接数、并发数等连接资源,同时事务中每一条查询持有的锁均不会释放,直到对应事务提交或回滚才会释放,在此期间与该事务涉及的表的查询多数都将被阻塞,会影响服务的响应速度。
若发现事务处于 idle in transaction 状态时间过久(如超过一小时),建议及时提交或回滚事务。

2.1.2 活跃会话详情

点击目标会话右侧的“查看”按钮,弹出查询详情页,展示了该查询在 pg_stat_activity 表中所有的字段信息,支持终止会话。

2.2 阻塞会话

2.2.1 阻塞会话列表

点击“阻塞会话”,切换至阻塞会话列表,展示当前数据库中的会话阻塞关系,默认按阻塞时长的倒序排列,即阻塞关系存在的时长越长,排序越靠前。列表内容 10秒 自动刷新一次,若需要仔细查看列表中的某组阻塞关系信息,可以暂停刷新,防止自动刷新功能过滤掉正在查看的阻塞状态的会话。为了降低频繁自动刷新带来的负载,当你退出查询监控页面时,系统将暂停自动刷新。

2.2.2 阻塞会话详情

点击目标阻塞关系右侧的“查看”按钮,弹出查询详情页,支持终止会话。