在将我的RDS postgres从9.4升级到9.5之后,我看到CPU保持在100%左右超过8个小时。
我看到了相同的数据库查询,在我手动取消它们之前,它们在10+分钟内运行不到1秒。
我不是在处理大型数据库。大多数被查询的表的行数都小于10000行

与正常情况相比,我的读取IOPS和写入IOPS非常低(主要是因为站点关闭,我关闭了非关键服务)。
我一直在关注pg_stat_activity中的活动查询,没有发现任何异常(除了过去耗时不到1秒的长时间运行的查询)。
我确实从9.5升级到了9.6,只是为了它的地狱,它没有任何帮助。
对调试有什么建议吗?我被难住了,很多网站都瘫痪了。
发布于 2019-12-04 18:16:23
ANALYZE VERBOSE;我遇到了一个极其相似的问题,就连postgres的各个版本都被移来移去,只需运行ANALYZE就能解决这个问题。
问题是postgres生成的查询计划是针对postgres的前一个版本进行优化的,当你进行RDS更新时,它不会隐含地重新生成这些计划,这需要手动完成(我相信AWS不手动完成这一点是有原因的,但我真的不知道为什么)。
在我的例子中,我看到大约一周的CPU使用率非常高,就像您的例子一样,然后在运行ANALYZE之后,我的cpu下降到了它以前的基线。正如您在下图中所看到的,升级(在我的示例中,从9.4到9.5)是在11/27运行的,分析查询是在12/02运行的。
(详细信息并不是绝对必要的,但能够查看命令的进度是很有用的)

发布于 2017-10-12 01:01:30
调试RDS很困难,因为您无法检查主机操作系统。如果可能,您可以为每个数据库创建快照,然后从9.5和9.6版本的快照创建两个全新的RDS实例。这将帮助您了解这是否存在以下问题:
https://stackoverflow.com/questions/46692986
复制相似问题