善意提醒

如果您打开本站很慢,布局排版混乱,并且看不到图片,那么可能是因为您还没有掌握用科学的方法上网的本领。

2012-08-03

GAE 的 Frontend Instance Hours 高居不下咋办?

架设 GAE 用了 GoAgent 之后,对于 Dashborad 中的 Frontend Instance Hours 一项数字如此之高有些不解。查了 Google,发现有同样疑问的还有很多人。于是翻了翻 Google 的文档,做了做实验,基本上弄明白了。

其实这个数字高也不代表什么。不信你可以架一个 Hello world 上去,先不要急着访问,只是打开 Dashboard 看看。Number of Instances 应该是 0,Frontend Instance Hours 也是 0。然后再打开 WebBrowser 访问一下你的 Hello world,再看 Dashboard。现在 Number of Instances 是 1 了,而 Frontend Instance Hours 就开始了渐渐的增长,哪怕你把 WebBrowser 马上关掉也是如此。
说白了,Frontend Instance Hours 就是 GAE 记录的服务实例运行所用掉的时间配额。没访问过的话,实例数是 0。而一旦有 HTTP 请求,GAE 就得启动一个实例来响应这个请求。运行这个实例需要耗费相应的 CPU 和内存资源,于是 GAE 就开始计费了。实例不停,Frontend Instance Hours 就会一直长。而 GAE 为了能在短时间内响应下一个请求,通常是不会很快把实例给停掉的。(至于到底会等多久才停实例,据说是 15 分钟无新请求就不再增长 Frontend Instance Hours,但实例数还在,估计挂起了。不过你可以手动停掉它。)
既然叫做「Hours」,增长的速度当然就是指的实例实际运行的时间。实例跑了一个小时,那么 Frontend Instance Hours 就会增加 1.00。我没测过 Google 会不会在计费上面耍点小手段,大抵是不会的,个人感觉也基本上差不多。
所以看着 Frontend Instance Hours 一点一点地增长,也完全不必心慌。一天 24 小时,GAE 给了 28 的免费配额,如果你只跑一个实例,是不可能用完的。用到 23.99,下一分钟就第二天,重新计算,清零了。对于只跑 GoAgent 的用户,实在不放心的话,我觉得用两个 AppID 来跑也完全足够了。当然,流量超了的情况另算。

那么什么时候 Frontend Instance Hours 会超过 24 呢?据说一个请求如果在等待了超过 Min Pending Latency 的时间之后,仍然没有实例能来处理它,那么 GAE 就会开一个新实例来做这个事情。所以 GAE 给了免费用户 28 个 Frontend Instance Hours。Google 的解释是为了让用户能够应对一些紧急状况。
另外,这个「紧急情况」,除了指访问量大导致的多实例运行,也包括了一个功能,就是 GAE 允许用户调高 Frontend Instance Class。F2 级就比 F1 级多用一倍的计算资源,而 Frontend Instance Hours 也就增长得快一倍。这种情况下,多出来的 4 个小时就可以视为 GAE 给的「加力」之类的东西了。如果你只想在短期内进行一个高强度的计算,那么可以考虑用 F4 来跑一个 APP 看看。

没有评论:

发表评论