为什么在Google Cloud Platform的AppEngine上,欧洲西部比美国中部慢得多?



我做了一个实验,在谷歌云平台上安装了相同的应用程序,使用相同的数据库,并在两个不同的位置安装了相同的存储桶(用于图像(:美国中部和欧洲西部。但是,加载时间大不相同。我在西班牙,令人惊讶的是,美国中部的要快得多。

应用信息:

  • 地区:美国中部 VS 欧洲西部
  • 菲律宾比索 5.5

SQL(两者相同(:

  • MySQL 第一代大师
  • MySQL 5.6
  • 层: D1
  • 激活策略:按需
  • 首选位置:关注应用

存储(谷歌存储桶(:

  • 默认存储类:多区域
  • 位置:欧洲(欧洲西部(和美国(美国中部(

加载时间(出于缓存目的进行一些刷新后(:

  • 美国中部:2.26 秒 https://practia-delta.appspot.com/
  • 欧洲西部:9.96 秒 http://gamma.practia.org/

欧洲西部的那个太慢了,不切实际。为什么会有这种差异?或者我在这里配置错了什么?在配置中还有什么我应该注意的,以使欧洲西部与美国中部一样快?

好的,所以与Google支持部门交谈,我发现确实存在加载差异,但这并不是由于服务器速度变慢。

区别来自于对CloudStorageTools API的调用,即CloudStorageTools.getImageServingUrl()。每次调用,从欧洲访问 API 比从美国服务器慢 ~100 毫秒到 ~200 毫秒。由于我平均或多或少地拨打了 15 次电话,这导致每页加载时间明显不同。

在我的情况下,解决方案是在映像创建时缓存对CloudStorageTools.getImageServingUrl()的调用并将结果保存在数据库中。然后在显示图像时,只需从数据库加载 Url,避免每次都调用 API。

Google支持团队证实,欧洲和美国之间CloudStorageTools API访问时间的差异是预期的行为,尽管没有记录在案。

最新更新