到目前为止,我已经处理此类问题超过 6 个月,命中率/分钟与您的相似,可能略高一些,以及我在 F1 中找到的最佳设置并且没有破坏银行(但相比起来仍然很昂贵与其他提供更好性能的托管服务)是:
min idle instances = 1
max idle instances = 1
min pending latency = 15s
max pending latency = 15s
如果每个实例的内存消耗超过 128MB,那么您可以考虑选择 2 或 3 作为最大空闲实例。
根据我的经验,在这种配置下,一些请求将由常驻实例处理,而其他一些请求将由一个新的动态实例处理,如果运气好的话,如果应用引擎之前提供过预热请求,它就会预先加载,获得比通常的 30 秒更好的响应时间(如果不是 DeadlineExceededException)。
但是会有一些请求会运行新的加载实例,这是使用自动缩放不可避免的。有一种非常新颖的东西叫做手动缩放,它是可配置的,但它会增加你的应用程序的复杂性,并且不会解决这个严重的性能问题的根本原因。
我很遗憾谷歌无法为使用 Spring、Guice 等 DI 框架的 Java 应用程序提供体面的服务......因为您可以查看多个论坛和许多关于这个问题的开放线程,其中一些是两年多以前的问题.
不管你对Spring 的优化有多好,不幸的是,在许多情况下,对于 google app engine for java 中的专业应用程序来说,等待时间仍然是不可接受的。