我正在检查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
答案 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毫秒的ping往返,看起来该文件通常在50毫秒左右的时间内提供。
我猜测150-300ms的响应时间与谷歌应用引擎前端服务器“冷缓存”有关。我假设从某个持久存储中检索文件涉及比在前端服务器缓存中更高的延迟。
我还假设您可以点击各种前端服务器并获得零星的更高延迟。
最后,浏览器的整体感知延迟应该与以下内容密切相关: (tc)ping前端+ tcp / http排队/缓冲在前端服务器+文件服务应用程序时间(如谷歌应用程序日志中所示)+传输文件的时间。
如果前端服务器没有过载且文件很小,则延迟应该接近ping +服务时间。
在我的情况下,50ms(ping)+ 35ms(服务)= 85ms,非常接近我在浏览器中看到的95ms。
最后,如果您的应用程序正在提供大量请求,它们可能会排队,引入应用程序日志中“不可见”的延迟。
答案 2 :(得分:0)