我的摄取管道如下
队列 -> EC2 -> RDS
我观察到以下情况,当我第一次打开 ec2 来从 sqs 提取数据时,rds 上的每秒写入速度非常快。但 4 小时后,sql 写入时间开始增加。
以下是一张图表
每秒写入次数 https://i.stack.imgur.com/XavU0.jpg
队列深度 https://i.stack.imgur.com/vXkGr.jpg
队列中仍有很多消息,因此我确认问题不是由于 sqs 数据不足造成的。我尝试记录 sql 写入时间。从更新到提交,发现写入延迟增加了 10 倍,因此可能不是 ec2 的 CPU 信用问题。但如果我关闭 ec2 提取并在一天后将其打开,我又会看到出色的性能。
以下是我验证的内容
- rds cpu credit 没有下降太多,几乎没有下降
- ec2 CPU 信用确实从 150 下降到了 6,但 rds 的延迟在凌晨 2 点左右开始增加,ec2 在上午 9 点左右耗尽了它的 CPU 信用,瓶颈仍然是 sqsl 写入时间,从 0.002 增加到了 0.04
我正在使用 2 ec2 t2.micro 和 1 t2.medium rds。
我怀疑我需要更改某些网络带宽限制。或者也许 ec2 上的 CPU 信用会以某种方式增加 SQL 写入的延迟?
有人能给我指出正确的方向吗?