当应用程序引擎变慢时会更昂贵吗?

时间:2010-08-11 22:07:19

标签: google-app-engine

最近有很多场合应用引擎似乎运行速度较慢。在某种程度上,云平台的架构可以理解。我不是在讨论新的服务器实例 - 只是要求加热服务器。我也只是指CPU,而不是数据存储API,但我也很想知道它。

似乎在这些缓慢的时期我收到了更多关于我的请求的黄色警告 - 说我使用了大量的CPU。当然,在此期间他们需要更长时间才能完成。我担心的是,在这些缓慢的时期,我的可计费 CPU似乎上升了。

所以要清楚 - 当app引擎很快时,请求可能会在100毫秒内完成。在缓慢的时间段内,同一请求可能需要超过1秒。相同的URI,相同的缓存,相同的处理路径,相同的数据存储,相同的索引 - 更多的CPU。根据我的理解,黄色警告指的是可计费的CPU使用率,当app引擎速度较慢时,还有更多的警告。

这似乎设置了一个奇怪的情况,当应用引擎性能更差时,我的应用程序运行成本更高。这意味着谷歌赚的钱越多,平台的表现越差(直到失败或客户离开的程度)。也许我的情况完全错了,它不会那样 - 但如果它确实像那样工作,那么作为客户,压力和平衡都是错误的。这并没有暗示谷歌的任何错误做法 - 只是这两件事之间的关系似乎并不合适。

似乎谷歌的算法似乎就像 - '如果我给CPU处理一个处理作业并启动我的手表,那么当作业返回时就停止它我得到可计费的CPU数字。即它根本不测量CPU工作。当然应该将时间除以同时执行的处理作业的数量加上一些额外的时间来覆盖额外的上下文切换。我确信这些东西很难衡量 - 也许这就是原因。

我猜你可能会认为,当应用引擎需求量很大时,你支付更多费用是公平的,但这使得预算几乎不可能 - 你无法生成像“100个用户每天花费1美元”这样的统计数据,因为那样可能会因为一系列原因而发生变化 - 包括应用引擎入门的客户数量超过基础设施可以实际处理的数量。如果谷歌过度订阅应用引擎,那么所有客户支付更多 - 这是另一种听起来不正确的关系。当然,谷歌的成本应当 down ,因为他们会吸引更多客户,而这些客户会根据规模经济使用更多资源。

我是否应该在我的应用中期望两个相同的请求每次运行时花费我大致相同的金额 - 无论壁挂式应用引擎需要多少实际完成它们?我误解了它是如何工作的吗?如果我没有,那么从长远来看,我不应该担心它吗?是否有一些文件使这种情况更清楚?欢呼声,

科林

3 个答案:

答案 0 :(得分:3)

这会更复杂,但他们可以将计费算法更改为负载的函数。或者他们可能会根据过去类似呼叫的性能来标准化CPU测量值。

我同意这给开发者带来了问题。

答案 1 :(得分:0)

是的,这是真的。这是一个无赖。每次他们确定我的网站需求量很低,并且不需要资源时,它也会花费他们超过一秒的时间来启动我的Java应用程序(我需要付费)。

我最终使用cron每分钟自动ping我的网站以保持温暖..做所有浪费的工作使我的账单更便宜,因为它没有启动时间,而是它只有很多2ms ping ...

答案 2 :(得分:0)

这个问题看起来很旧,我认为定价方案一定已经改变了......

Google App Engine对“instance hours”收费,而当前生成的实例可在GAE控制台中查看。谷歌提供调整,以便您可以决定应用的成本与延迟。

https://developers.google.com/appengine/docs/adminconsole/performancesettings

我确实注意到,如果前端遇到一个普通的后端资源,那么GAE会产生一堆实例以降低延迟。即使延迟/吞吐量没有改善,您也将为这些实例小时付费。我提到的调整似乎对此有所帮助。