Azure PostgreSQL副本每月2号资源利用率升高问题咨询
Azure PostgreSQL副本月度固定日期CPU使用率升高排查方案
可能的问题诱因
- Azure PostgreSQL长期保留备份(LTR)任务:月度备份的调度为独立配置,容易和日常的短周期备份混淆,若设置为每月2号触发,备份时的资源开销会直接推高CPU使用率
- 业务侧月度定时任务:常见的月度数据统计、报表生成、对账、跨系统数据同步类任务通常会固定在月初执行,这类任务多会优先读副本避免影响主库性能,会导致副本资源占用突增
- 数据库自定义定时任务:通过pg_cron等扩展创建的定时维护任务、数据归档任务若调度为每月2号执行,也会产生对应的资源消耗
- PostgreSQL自动维护任务:若表规模较大,自动vacuum、自动统计信息更新任务触发时也会产生较高的CPU开销,若多张大表的维护窗口恰好集中在每月2号,也会出现规律性峰值
具体排查路径
- 核查平台侧配置
进入Azure门户对应PostgreSQL实例的「备份」页面,查看长期保留备份策略的触发时间,确认是否匹配峰值时间;同时进入「维护」页面,确认系统自动补丁更新、版本升级的维护窗口是否和峰值时段吻合。 - 排查业务访问请求
开启实例的慢查询日志,过滤峰值时间段内执行时长超过1s的请求,确认是否存在批量聚合、全表扫描类的大查询集中执行;也可以在峰值临近时通过以下语句查询实时活跃请求:
SELECT pid, query, state, now() - query_start AS duration FROM pg_stat_activity WHERE state = 'active' ORDER BY duration DESC;
- 核查数据库内部定时任务
检查是否通过pg_cron等扩展创建了月度定时任务,确认调度时间是否匹配峰值;同时查询pg_stat_user_tables视图的last_autovacuum、last_autoanalyze字段,确认大表的自动维护时间是否和峰值时间吻合。

内容的提问来源于stack exchange,提问作者tommy
相关产品推荐
相关产品推荐

