【问题标题】:Automatic vacuum of table "cloudsqladmin.public.heartbeat"表“cloudsqladmin.public.heartbeat”的自动真空
【发布时间】:2020-06-19 06:03:58
【问题描述】:

我们的后端经常出现中断,这似乎与 Cloud SQL Postgres 实例 (v9.6) 的高 CPU 使用率峰值有关

看看cloudsql.googleapis.com/postgres.log,那些高CPU峰值似乎也与数据库运行表cloudsqladmin.public.heartbeat的自动真空时相关

我们没有找到任何关于这个表是什么以及为什么如此频繁地运行 autovacuum 的文档(我们自己的表似乎没有受到它的影响)。

这正常吗?我们应该调整 autovacuum 的值吗?提前致谢。

【问题讨论】:

    标签: postgresql google-cloud-sql


    【解决方案1】:

    通过查看您的图表,CPU 和 cloudsqladmin.public.heartbeat autovacuum 之间没有相关性。

    我们先来看看cloudsqladmin.public.heartbeat表是什么,这是Cloud SQL High Availability进程使用的表,这个更好解释here

    主实例每秒写入系统数据库作为 心跳信号。

    因此,该表在内部用于跟踪您的实例的运行状况。 autovacuum 是基于 doc David 共享的。

    现在,如果 Vacuum 进程产生 CPU 峰值,您将每分钟/秒看到一次峰值。

    所以,直接回答你的问题:

    这正常吗? : 是的,从 Cloud SQL 内部的角度来看,autovacuum 和 cloudsqladmin.public.heartbeat 表是完全正常的,它们不应该以任何方式影响 Instance。

    我们应该调整 autovacuum 的值吗? : 不需要,如前所述,这个进程不是影响CPU Instance的进程,您可以隐藏包括“cloudsqladmin.public.heartbeat”在内的类似日志,并分析出现Spike时留下的日志。

    值得查看触发的备份过程(可能同时有一个)Cloud SQL > Instance Details > Backups,但当然,这与此处描述的主题不同:)。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 谢谢!虽然知道可以根据每个表更改 autovacuum 设置很有用,但这并不能解释 cloudsqladmin.public.heartbeat 是什么以及它为什么经常需要 autovacuum。请注意,我们无权访问 cloudsqladmin 数据库,它带有 Cloud SQL 实例,但我们无法读取它,也无法更改其设置。
      • CPU 图表只显示一个峰值,而不是每 5 分钟一个峰值。
      • @jjanes 确实如此,但每次出现峰值时,都会运行自动真空(而不是相反)。这可能是随意的,但我认为仍然值得探索为什么会发生这种自动真空。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 2022-01-22
      • 2018-09-16
      • 2010-12-18
      相关资源
      最近更新 更多