google-app-engine - 如何为低流量配置 google app engine java(1 次/分钟)

标签 google-app-engine

我有一个基于 spring 的 Web 应用程序运行在 App Engine java 上,每分钟接收约 1 次点击。

不幸的是,App Engine 调度程序会终止空闲时间超过 10 秒左右的实例。因此,对我网站的每个请求大约需要 30 秒才能完成,同时会加载一个新的动态实例。

尝试使用常驻实例,但是,请求永远不会到达常驻实例。不管有多少常驻实例(我试过最多 4 个),一个新请求总是会产生一个新的动态实例,因此即使有 4 个空闲实例,一个请求也必须等待 30 秒。

空闲实例和延迟的哪些设置可以让我的应用程序始终运行,以便我每分钟收到的奇数 1 个请求都得到一个热/实时实例。

最佳答案

到目前为止,我已经处理此类问题 6 个多月了,命中率/分钟与您的相似,可能更高一点,并且是我在 F1 中找到的最佳设置并且没有破坏银行(但与提供更好性能的其他托管服务相比仍然很昂贵)是:

min idle instances = 1
max idle instances = 1
min pending latency = 15s
max pending latency = 15s

如果您的内存消耗超过每个实例 128MB,那么您可以考虑使用 2 或 3 个作为最大空闲实例。

根据我的经验,使用此配置,一些请求将由常驻实例处理,而另一些请求将由一个新的动态实例处理,幸运的是,如果应用引擎为之前的预热请求,获得比通常的 30 秒更好的响应时间(如果不是 DeadlineExceededException)。
然而,一些请求将运行新的加载实例,这是使用自动缩放不可避免的事情。有一种很新颖的东西叫manual scalling这是可配置的,但它会增加您的应用程序的复杂性,并且不会解决这个严重性能问题的根本原因。

我很遗憾谷歌无法为使用 DI 框架(如 Spring、Guice...两年前。
不管你有多好optimize Spring ,不幸的是,许多情况下的等待时间对于 java 的 google app engine 中的专业应用程序来说仍然是 Not Acceptable

关于google-app-engine - 如何为低流量配置 google app engine java(1 次/分钟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345631/

相关文章:

python - 使用过滤器在数据存储中查询多对多

python - urlfetch 重定向到 python 中的无限循环

java - Appengine 上传限制为 10000 个文件

python lxml 在 dev_appserver(gae,windows)中不可用

google-app-engine - 在 Google Cloud SDK 上部署项目时错误响应 : [13] An internal error occurred,

python - 是否可以在 Google App Engine 中使用 textile 2.2.0?

python - 如何检索 GAE 高复制数据存储中记录的最新版本?

google-app-engine - 使用 Google App Engine 的大型多用户实时应用程序

java - 具有 Objectify 数据结构的 App 引擎

google-app-engine - Google App Engine Java 后端应用程序版本