[英]Managing Google App Engine java instances with quite heavy load to avoid 500 errors
我们有一个Google App Engine Java应用程序,每天的小时数为50 - 120 req / s。
我们的前端appengine-web.xml是这样的:
<instance-class>F1</instance-class>
<automatic-scaling>
<min-idle-instances>3</min-idle-instances>
<max-idle-instances>3</max-idle-instances>
<min-pending-latency>300ms</min-pending-latency>
<max-pending-latency>1.0s</max-pending-latency>
<max-concurrent-requests>100</max-concurrent-requests>
</automatic-scaling>
通常,1个前端实例可以处理大约20 req / s。 启动时间大约是15秒。
我有几个问题 :
- >有更好的方法来切换版本吗?
- >你有建议避免这种情况吗?
- >你有建议避免这种情况吗?
非常感谢您的帮助! ;)
这些错误消息主要与加载请求相关,这些请求在加载时持续时间过长,因此它们完成类似于DeadlineExceededException的操作 ,这会大大影响您可能已经知道的性能和用户体验。
当使用带有谷歌应用程序引擎的DI框架时,这是一个经常出现的问题,到目前为止,这是使用 自动扩展 时不可避免且严重的未解决问题 ,这是App Engine自成立以来为公共请求提供的扩展策略。
尝试将前端实例类更改为F2 ,特别是如果您的内存消耗高于每个实例128MB,并将最小 - 最大挂起延迟设置为15秒,这样您的请求将有更多机会由常驻实例处理。 但是,对于某些请求,您将获得更长的响应时间,因为每次您的应用程序需要新实例时 , Google App Engine都不会发出预热请求 ,而且我认为F4会破坏银行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.