RDS PostgreSQL DB slow&;每天2小时CPU峰值期间的超时

RDS PostgreSQL DB slow&;每天2小时CPU峰值期间的超时,postgresql,amazon-rds,cpu-usage,cycle,Postgresql,Amazon Rds,Cpu Usage,Cycle,两个多星期以来,我观察到我的RDS实例(在db.t3.small上的PostgreSQL 10.6)在工作时间内每天都有2小时的CPU峰值,并且读写延迟增加,这导致我的应用程序响应性差或超时 我确实进行了调查(见下文),在这一点上,我确信这些影响我的用户的峰值并不是由我的使用引起的,并且倾向于认为它们是由来自RDS的恶意管理任务或某些PostgreSQL问题引起的 有人用PostgreSQL解决了类似的问题吗? 有人能帮我调查一下RDS管理任务吗? 或者告诉我其他的途径来弄清这些 我观察到:

两个多星期以来,我观察到我的RDS实例(在
db.t3.small
上的PostgreSQL 10.6)在工作时间内每天都有2小时的CPU峰值,并且读写延迟增加,这导致我的应用程序响应性差或超时

我确实进行了调查(见下文),在这一点上,我确信这些影响我的用户的峰值并不是由我的使用引起的,并且倾向于认为它们是由来自RDS的恶意管理任务或某些PostgreSQL问题引起的

有人用PostgreSQL解决了类似的问题吗? 有人能帮我调查一下RDS管理任务吗? 或者告诉我其他的途径来弄清这些

我观察到:

  • 在RDS仪表板中,清除约2小时的CPU峰值,使用率约为20%,而在正常使用情况下,CPU保持在5%以下
  • 读写延迟在这些CPU峰值附近增加
  • 来自我的生产应用程序数据库的查询速度很慢,甚至超时,这使得我的用户无法使用它
我所调查的:

  • 在峰值期间,DB连接不高,最大为0到10
  • 我的数据库很小,PGU大小告诉我它是18MB!我最高的桌子目前有1169行,没有一个超过10列
  • 可用存储空间很好,仍然高于19000MB
  • 我知道我的用户并不是特别忙,因为谢天谢地,这是他们使用我的应用程序的假期。同样,在我知道我的应用程序使用率很高的日子和时间段,CPU使用率从未超过5%
  • 我在此数据库上没有计划的任务或进程
  • 记录所有语句以及耗时超过200毫秒的语句证实了这一点,除了PgAdmin查询耗时少于200毫秒的统计数据外,没有多少语句发生,当我停止它们时,这些语句对CPU使用率没有影响
  • 备份不是罪魁祸首,它们发生在夜间,大约需要3分钟
  • 在我看来,没有链接到错误查询或挂起的事务。我检查了峰值期间的pg_stat_活动,检查了“事务中空闲”和“活动”的持续时间。那里最多有10-11次活动。我的4-5次活动没有任何可疑之处。其余的是“rdsadmin”活动,我没有权限查看这些活动的详细信息。我看到的唯一一个有点怀疑的活动是PgAdmin收集统计数据,但我用pg_cancel_后端杀死了它,杀死了我的PgAdmin服务器,它消失了,峰值持续了30多分钟
  • 在这些高峰期间,绩效洞察似乎并没有让我看到可疑的活动
  • 在基本的PostgreSQL日志中,我看到检查点确实变长了很多(长10到100倍),但很好地进入了峰值,而不是在开始时
以下是关于峰值启动的基本日志(在激活语句日志之前):


,,,

可能是由于PostgreSQL的后台进程,您的磁盘上的突发点数即将用完。
如果我没记错的话,Rds上的所有磁盘都是gp2类型的。这意味着您有一个特定的基本iops和积分,您可以在一小段时间内超过该值。您应该能够在监控页面上的队列深度度量中看到这种效果。如果发生这种情况,你会看到这个数字出现峰值。最简单的解决方案是增加磁盘大小

谢谢你的真知灼见。我已经检查了过去每天CPU峰值周围的队列深度。我看到队列深度峰值,但在CPU峰值开始之前并不一致。我还看到队列深度的峰值,比CPU峰值周围的峰值要高,但不会导致任何问题。过去两周的最高峰值为0.22,不知道这是否太高。所以我认为这不是原因。如果你感兴趣的话,调查已经进行了,0.22的峰值算不了什么。所以没什么好担心的。我想你还可以从名单上划掉另一件事:)
2019-12-09 15:04:05 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:04:05 UTC::@:[4221]:LOG:  checkpoint complete: wrote 2 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.202 s, sync=0.001 s, total=0.213 s; sync files=2, longest=0.001 s, average=0.000 s; distance=16369 kB, estimate=16395 kB
2019-12-09 15:09:05 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:09:05 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.112 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16394 kB
2019-12-09 15:14:05 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:14:05 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.113 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16393 kB
2019-12-09 15:19:06 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:19:06 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.113 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16392 kB

[CPU PEAK STARTS here that day, at 16:20 UPC+1]

2019-12-09 15:24:06 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:24:06 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.114 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16391 kB
2019-12-09 15:29:06 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:29:06 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.113 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16390 kB
2019-12-09 15:34:06 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:34:06 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.103 s, sync=0.002 s, total=0.118 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16390 kB
2019-12-09 15:39:06 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:39:06 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.104 s, sync=0.003 s, total=0.127 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16389 kB
2019-12-09 15:44:06 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:44:06 UTC::@:[4221]:LOG:  checkpoint complete: wrote 2 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.219 s, sync=0.010 s, total=0.303 s; sync files=2, longest=0.010 s, average=0.005 s; distance=16392 kB, estimate=16392 kB
2019-12-09 15:49:07 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:49:09 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.318 s, sync=0.516 s, total=2.426 s; sync files=1, longest=0.516 s, average=0.516 s; distance=16375 kB, estimate=16390 kB
2019-12-09 15:54:07 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:54:09 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.367 s, sync=1.230 s, total=2.043 s; sync files=1, longest=1.230 s, average=1.230 s; distance=16384 kB, estimate=16389 kB
2019-12-09 15:59:07 UTC::@:[4221]:LOG:  checkpoint starting: time
2019-12-09 15:59:08 UTC::@:[4221]:LOG:  checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.139 s, sync=0.195 s, total=1.124 s; sync files=1, longest=0.195 s, average=0.195 s; distance=16383 kB, estimate=16389 kB