2014-10-10 65 views
0

我有一个相对较低的流量应用,可以在95%以上的时间内轻松地通过单个实例进行处理。偶尔,运行多个实例将有助于提供更好的用户体验。在单个实例中保持GAE可灵活扩展

GAE似乎应该能够以这种方式进行自动缩放,但我不能让GAE在流量较低时仅保留一个实例。这是我曾尝试:

  • 设置最低实例1
  • 设置最大实例3
  • 设置最低待处理延迟时间为1秒
  • 设置最大待处理延迟时间设置为自动(也1秒)

有了这个配置,GAE几乎总是会运行两个实例,即使只有一个是足够的。

我知道我可以将最大实例设置为1,但我希望能够在需要时自动缩放。

是否有可能做我想要的东西?

回答

3

请注意,您正在设置的最小/最大属性适用于IDLE实例。

  • Set min instances to 1意味着你将永远有至少一个实例中运行,即使有15分钟以上的请求。如果您的流量较低,并且您的应用快速启动(例如1-2秒),则该值可以设置为0,否则用户在第一次请求时响应速度会非常慢。

  • Set max instances to 3意味着即使只有很少的请求,GAE也可以随时保持三个实例运行。这可以设置为1以节省一些成本,但会在流量增加时使请求变慢(启动新实例所需的时间+启动应用的时间)。

max-idle-instances不限制流量高峰的事件实例的数量,您的应用程序将永远规模,并在需要新的实例将继续推出。最小/最大设置仅用于帮助处理突然增加的流量,并且无法限制可启动的实例数量。

看看这篇文章的一些细节:Setting the Number of Idle Instances

关于你的问题,你可以尝试降低max-idle-instances1,看看有没有什么帮助。您不必担心缩放问题,如果需要新的实例仍会启动,请记住,用户的体验可能不尽如人意。如果您减少了max-idle-isntances的数量,并且您仍然看到超过1个实例在非常低的流量上运行,那么您的应用可能需要进行优化,如果不是,则可能需要启用多线程。

+0

谢谢,非常有帮助! – 2014-10-11 14:41:08