有没有办法找出实例被杀的原因?

时间:2016-11-04 11:27:39

标签: google-app-engine

我有一个小的Java应用程序(2-10 qps),设置为使用F4_1G实例自动缩放。有趣的是,通常只有一个实例是真正活动的,通常会创建两个实例。有时,几个小时后,实例会消失并立即被另外1-2个实例替换,并且相应的实例负载会导致延迟很多。有没有办法找出实例被击落的原因?我没有看到任何_ah / stop(我认为这是正常的自动缩放)或任何有关超出内存限制/移动到另一个系统或任何其他错误的消息,只是在发生更改时的大延迟。此外,实例使用大约250MB内存,远低于1GB。此外,延迟非常低(平均80ms)。

我也试过基本缩放,重启次数较少,但也有一些发生。我可以看到_ah /停在那里,但仍然没有错误消息,为什么它被停止(例如,搜索日志"移动""超过""记忆&#34 ;)

从我在堆栈上找到的内容来看,我无法真正看到它会弹出的位置,它会出现在日志中,对吗?关于如何弄清楚问题可能是什么的任何其他想法?

1 个答案:

答案 0 :(得分:0)

几个月前,我遇到了同样的问题。即使CPU和内存的使用处于范围之内,实例也将被关闭并生成新实例,实例本身或其响应延迟没有特别的问题,并且没有流量高峰。 经过大量观察和研究,我注意到在处理了50000个请求(或更多请求)之后,实例正在重新启动。

在实例重新启动之前,实例所服务的请求数量似乎没有明确的硬限制,在我的情况下为50000(在App Engine Java标准上为F4或F4_1G实例)。其他人也得出了相同的结论(例如,参见here)。

两年后可能对您来说太迟了,但是我希望这对将来可能会在这里出现的其他人有所帮助。