为什么在我的RDS实例上执行查询会有延迟

我有一个在ec2 m3实例上运行的应用程序,以及在dRDS实例上运行的mysql。 他们都在相同的地区,VPC,但他们似乎是在不同的可用性区域。

问题是运行的查询可能会慢得令人难以置信 – 我说的是超过700毫秒的延迟超过一秒。 我怀疑延迟是由于连接到RDS服务器,但不是特别确定。

我完全可以做什么来完全减less/消除这个延迟。 在我的本地主机上,相同的查询最多不到四分之一到半毫秒。 我已经在高峰时间检查了几乎没有stream量,甚至在我的本地主机上存储了我的实时数据。 所以这个问题不能在交通繁忙或数据质量方面。

==编辑===

以下是RDS实例的规格:

实例和IOPS

实例类:db.m3.medium

存储types:预置IOPS(SSD)

IOPS:1000存储:100 GB

交叉AZ潜伏期应该很低(例如Sub <25ms)

如果您的应用程序查询是串联的而不是并行的,那么需要跨越AZ的往返时间(时间将是该系列的累积时间)。

我会创build一个与RDS实例相同的AZ的EC2机器,并在您的EC2实例之间使用ping来计算您的基本等待时间。

然后,您可以尝试使用相同的AZ来运行您的应用程序,并对应用程序的性能进行基准testing(是否相同,是否更好,更糟糕)。 逻辑上,性能应该会提高。