为什么我的GAE应用程序提供的静态文件的延迟如此之高?

时间:2013-02-07 15:30:36

标签: performance google-app-engine go

我正在检查GAE上的Go应用程序的性能,我认为静态文件的响应时间非常长(183ms)。是吗?为什么?我能做些什么呢?

64.103.25.105 - - [07/Feb/2013:04:10:03 -0800] "GET /css/bootstrap-responsive.css
HTTP/1.1" 200 21752 - "Go http package" "example.com" ms=183 cpu_ms=0 

3 个答案:

答案 0 :(得分:1)

为了进行比较,我使用tools.pingdom.com

测试了一个网站

Pingdom报告加载时间为218ms

以下是日志的结果:

2013-02-11 22:28:26.773 /stylesheets/bootstrap.min.css 200 35ms 45kb

另一项测试导致Pingdom中的238ms和日志中的2ms

因此,我会说你的183ms似乎相对较好。有很多因素在起作用:

  • 您到服务器的位置
  • 服务资源的服务器是否已超载?

您可以尝试使用Go实例而不是App Engine的静态文件服务器来提供文件。我前段时间对此进行了测试,结果偶尔更快,但速度不太一致。由于App Engine Instance being Limited to 10 Concurrent Requests,响应时间在负载下也增加了。更不用说你会收到实例时间的费用。

修改

要与其他Cloud / CDN提供商进行比较,请参阅Cedexis's - Free Country Reports

答案 1 :(得分:1)

“常规”200毫秒似乎是静态文件的高位。我从我的应用程序提供相同“bootstrap-responsive.css”的静态版本,我可以看到两种类型的答案时间:

  • 50-100ms(大部分时间)
  • 150-500ms(有时)

由于我对谷歌应用引擎有大约50毫秒的ping往返,看起来该文件通常在50毫秒左右的时间内提供。

我猜测150-300ms的响应时间与谷歌应用引擎前端服务器“冷缓存”有关。我假设从某个持久存储中检索文件涉及比在前端服务器缓存中更高的延迟。

我还假设您可以点击各种前端服务器并获得零星的更高延迟。

最后,浏览器的整体感知延迟应该与以下内容密切相关: (tc)ping前端+ tcp / http排队/缓冲在前端服务器+文件服务应用程序时间(如谷歌应用程序日志中所示)+传输文件的时间。

如果前端服务器没有过载且文件很小,则延迟应该接近ping +服务时间。

在我的情况下,50ms(ping)+ 35ms(服务)= 85ms,非常接近我在浏览器中看到的95ms。

最后,如果您的应用程序正在提供大量请求,它们可能会排队,引入应用程序日志中“不可见”的延迟。

答案 2 :(得分:0)