【问题标题】:Frontend instances frequently restart前端实例频繁重启
【发布时间】:2015-06-16 11:09:18
【问题描述】:

我正在开发一个游戏应用程序,目前我的 F4 前端实例出现了奇怪的行为。尽管一直处于负载状态,但它们经常以随机间隔时间重新启动。有时它们会持续 2 小时,但有时它们会在启动后仅 30 分钟就死掉,并且玩家在冷启动期间会遇到高延迟。

我已经设置了预热请求,我还尝试设置常驻实例、挂起延迟等,以至少避免由于重启而导致的延迟但没有成功。

我考虑过应用程序中的内存泄漏,但实例在死机前仅使用 200MB RAM,而 F4 实例有 512。日志中也没有崩溃的迹象。

我认为这不是应用引擎实例的正常行为。如果您能帮我找出问题,我将不胜感激。

Latency statistics

Logs

【问题讨论】:

  • 我发现与其他运行时相比,Java 的加载延迟相当高,即使有预热请求,用户请求仍然可以由尚未准备好的实例提供服务。如果您发现加载延迟更好,您可能需要考虑将应用程序的相关部分隔离到单独的 go/python 模块中。
  • 不幸的是,我目前只体验过 Java :( 如果加载延迟不是像每 30 分钟那样发生一次,那将不是问题。这意味着每个进入游戏的玩家都会遇到延迟至少一次。我觉得有些东西导致实例表现得像那样,但我找不到什么。我以前没有使用过其他 gae 应用程序,所以我不确定哪种行为是正常的,哪些不是。你能分享一下性能吗你的实例?
  • This other SO thread 你可能会感兴趣。

标签: java google-app-engine


【解决方案1】:

如果您不需要一个大实例,则最好运行几个较小的实例。

如果您确实需要所有玩家都在同一个实例上,您可能应该从自动缩放切换到manual scaling

【讨论】:

  • 不,我不需要一个实例。我目前正在使用自动缩放
【解决方案2】:

我们遇到了 Nhat 报告的相同问题。我们在 GAE 支持下打开了一张长票,但尚未回答。频繁重启的问题还在于负载均衡器,因为它将请求发送到一个新的实例,然后客户端被卡住,直到实例启动。没有办法让负载均衡器像这样:'在我让你知道我已经启动并且我准备好了之前不要向我发送请求'。 我认为这个问题是一个严重的 GAE 基础设施问题,这是一个长短的故事:由于我们的应用程序出现问题,我们被转移到了一个较旧的 GAE 版本,而且我们似乎在一个孤立的农场中运行。然后实例运行了几个小时而没有中断,完美无缺。一旦他们再次将我们转移到标准位置,我们将再次面临问题,而我们这边没有任何改变。 到目前为止,我们还没有找到解决方案,这对整体系统体验有很大影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多