如何在Google App Engine中获得可见性并优化配额使用?

时间:2014-06-24 03:02:36

标签: google-app-engine optimization

如何优化我的Google App Engine应用以减少我目前正在使用/付费的实例时间?

我一直在使用app引擎,而且成本一直在上升。我现在在GAE上花了足够的时间来投入时间来减少费用。我的GAE账单中有一半以上是由于前端实例小时数,所以这是显而易见的起点。但在我开始优化之前,我必须弄清楚使用实例小时的内容。

但是,我很难确定目前使用这么多前端实例的时间。我的应用程序提供许多ajax请求,动态HTML页面,cron作业和延迟任务。据我所知,可能有一些失控的过程导致我的实例使用率如此之高。

有哪些方法或技术可以让我了解我的应用,看看我在哪里使用实例时间?

3 个答案:

答案 0 :(得分:0)

这是一个非常广泛的问题,但我会提供一些指示。

首先,检查App Engine的控制台仪表板和日志。看看是否有任何错误。就业务损失和额外时间而言,错误都很昂贵。例如,任务被重试多次,这些恢复可能很容易将实例的寿命延长到超出必要的范围。

其次,仪表板会显示24小时内您的请求摘要。寻找具有高延迟的请求。看看你是否可以改进它们。这将改善用户体验,并且可以减少实例小时数,因为每个实例可以处理更多请求。

还要查找作为应用开发者而让您感到惊讶的数据点。如果你看到一个被认为是正常的请求被认为是正常的,那么就把它归零并看看它发生了什么。

第三,查看队列执行率。当您向队列添加多个任务时,您真的需要在几秒钟内执行所有这些任务吗?如果不是,请降低执行速率,以便队列永远不需要多个实例。

第四,检查你的cron工作。如果您可以降低频率,则可以节省大量实例时间。如果您的cron作业必须经常运行并进行大量计算,请考虑将它们移动到Compute Engine实例。计算引擎实例要便宜很多倍,因此将这样的实例运行24小时可能比每15分钟(甚至每小时)点击一次App Engine实例更好。

第五,确保您的应用程序是线程安全的,并且您的App Engine配置如此。

最后,做所有网络开发人员做(或应该做)的事情来改进他们的应用程序/网站。缓存可以缓存的内容。缩小需要缩小的内容。把图像放在精灵中。如果可以拆分,则拆分代码。使用Memcache。等等。所有这些步骤都减少了延迟和/或客户端 - 服务器往返,这有助于减少相同数量用户的实例数。

答案 1 :(得分:0)

除了代码更改(其他答案中的所有建议都很好),您需要查看时间图中的实例 如果你有尖峰和持续使用,在尖峰期间创建的实例将不会进入睡眠状态,因为appengine将继续使用它们。在appspot应用程序设置中,将“idle instances”max更改为较低的数字,例如1(或您的实际日平均值) 此外,将最小延迟更改为更高的数字,因此将在峰值上创建更少的实例 所有这些建议都可以立即对降低您的账单产生影响,但它只是对其他答案中建议的代码优化的补充。

答案 2 :(得分:0)

好的,我的另一个答案是关于在设置级别进行优化 要在粒度级别跟踪性能,请使用今天在Google i / o 2014上重新发布的新云跟踪 http://googledevelopers.blogspot.com/2014/06/cloud-platform-at-google-io-enabling.html