跨区域数据库延迟比 ping 慢很多?

跨区域数据库延迟比 ping 慢很多?

我们最近发现,从我们服务器的日志中可以看到,API 请求的响应时间约为 500ms。我们意识到这是因为我们的 API 在 aws-west-1 中运行,而远程数据库在 aws-east-1 中运行。通过将它们移到同一区域 aws-east-1,我们看到响应时间从约 500ms 下降到 <50ms。我们执行一个 Mongo 查询(我相信这是基于 Mongoose ORM 的情况)来获取约 80kb 数据集合中的所有文档,并在服务器上进行最少的处理。

然而,当我查看 ping 时间时,我发现低得多两个区域之间的 ping 时间约为 65ms。那么,为什么两个区域之间的 ping 时间约为 65ms,但将它们移到同一区域却能将延迟缩短约 450ms?我在想,这可能与 TCP 握手有关,但据我所知,这应该只是 ping 值的 1.5 倍左右?在我的计算中,是否还有很多我没有考虑到的额外干扰?

我最好奇的是,为什么这会导致如此急剧的下降,以及为什么之前速度要慢得多,尽管跨区域 ping 值远低于我们看到的增加的延迟。

答案1

没有一个明确的答案。以下是几种可能性:

  1. 您将数据库/应用程序服务器从使用率较高的服务器移至使用率较低的服务器。
  2. Ping 由网络堆栈中的低级进程处理。服务器操作系统的响应速度比应用程序的响应速度快。
  3. Ping 是小数据包(32 或 64 字节)。相比之下,80,000 字节则不然。
  4. 当您移动服务器时,您可能重新启动了一些出现问题的进程。

相关内容