使用Google Cloud Functions加速GAE应用

时间:2018-12-31 00:02:07

标签: google-app-engine google-cloud-functions

我有一个GAE标准Python应用程序,可以执行一些相当的计算处理。我需要在60秒的请求时限内完成处理,理想情况下,我想更快地进行处理,以获得更好的用户体验。

将工作拆分为多个线程似乎不是一个好的解决方案,因为线程可能会在同一CPU上运行,因此不会提高速度。

我想知道Google Cloud Functions(GCF)是否可以与线程类似地使用。例如,如果我创建一个GCF进行处理,将我的工作分成10个块,并并行进行10个GCF调用,我是否可以期望将结果快10倍? (除了延迟和GCF启动成本)

2 个答案:

答案 0 :(得分:3)

每个函数调用都在其自己的服务器实例中运行,并且一个函数最多可扩展到1000个实例,以并行处理并发请求。因此,是的,如果您愿意为分配给第一个请求的每个服务器实例支付冷启动成本,就可以这样做。

答案 1 :(得分:1)

如果您能够通过单独的(外部)请求将要并行启动的工作负载分成较小的块,我怀疑您可以通过使用GAE本身获得更好的性能(和成本)(也许在单独的服务中)而不是CF:

  • GAE标准环境included by default可以具有更高的CPU速度-B8实例具有4.8 GHz,最大instances为2.4 GHz
  • 您可以更好地控制GAE扩展配置和开始时间的处罚
  • 我怀疑在GAE上,网络延迟至少会相同,甚至不会更好-不会转到其他产品(虽然不确定)
  • GAE成本可能会更低,因为您按实例小时数付费(无论实例处理多少请求),而不是按请求/调用数付费