一尘不染

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

go

我在GAE上检查Go应用程序的性能时,我认为静态文件的响应时间非常长(183毫秒)。是吗?为什么?我该怎么办?

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

阅读 211

收藏
2020-07-02

共1个答案

一尘不染

对于静态文件来说,“常规” 200毫秒似乎很重要。我从我的应用程序提供了相同的“ bootstrap-
sensitive.css”的静态版本,并且可以看到两种类型的回答时间:

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

由于我与Google App Engine进行了大约50ms的ping往返,因此似乎文件通常在50ms左右的时间内送达。

我猜想150-300ms的响应时间与“冷缓存”的Google App
Engine前端服务器有关。我假设从某些持久性存储中检索文件涉及的延迟要比前端服务器缓存中的延迟高。

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

最后,浏览器的总体感知延迟应通过以下方式近似估算:(tc)往返+前端服务器上的tcp / http排队/缓冲+文件服务应用程序时间(如google
app日志中所示)+传输时间文件。

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

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

最后,如果您的应用程序正在处理大量请求,则它们可能会排队,从而导致延迟在应用程序日志中不可见。

2020-07-02