Java 如何解决谷歌应用程序引擎延迟?
我们的项目运行在Google App Engine标准环境上,自动缩放配置如下所述。应用程序中已启用预热请求,我们正在使用Google Endpoints服务。但是,我在不同的场景中面临延迟问题。 环境:Java8,实例类型:F4\u1G 自动缩放的配置: 最小实例数:2 最大并发请求数:80 最小等待延迟:6s 最大等待延迟:10秒 我使用JMeter进行了测试,配置为发送85个异步请求,提升时间为10秒。 从应用程序日志中,我可以注意到appengine需要很长时间来处理请求 1.由于时间过长,大多数请求都失败。在图1中,我们可以看到请求需要88.2秒。我知道AppEngine自动缩放有60秒的请求超时限制。但我们已经配置了至少2个实例的自动缩放,并且对max-instance没有任何限制。AppEngine实例应处理该请求,否则AppEngine应放大以处理该请求为什么没有发生?Java 如何解决谷歌应用程序引擎延迟?,java,google-app-engine,google-cloud-platform,paas,google-cloud-endpoints-v2,Java,Google App Engine,Google Cloud Platform,Paas,Google Cloud Endpoints V2,我们的项目运行在Google App Engine标准环境上,自动缩放配置如下所述。应用程序中已启用预热请求,我们正在使用Google Endpoints服务。但是,我在不同的场景中面临延迟问题。 环境:Java8,实例类型:F4\u1G 自动缩放的配置: 最小实例数:2 最大并发请求数:80 最小等待延迟:6s 最大等待延迟:10秒 我使用JMeter进行了测试,配置为发送85个异步请求,提升时间为10秒。 从应用程序日志中,我可以注意到appengine需要很长时间来处理请求 1.由于时间过
我认为这与Java 8运行时有关,因为Java是一个繁重的运行时,所以部署新实例需要很长时间 部署时间超过60秒,无人参与的请求将以超时结束 我认为您可以改进您的升级策略,例如,尝试使用更多实例启动服务,并添加此选项“”,以便在遇到80个并发请求之前启动新实例 文件指出: '当并发请求数达到等于最大并发请求数乘以目标吞吐量利用率的值时,计划程序将启动一个新实例。'
min-instances: 4
max-concurrent-requests: 80
target_throughput_utilization:0.75
min-pending-latency: 6s
max-pending-latency: 10s
在我的示例中,新实例将在实际实例有(80 X 0.75)60个并发请求时启动谢谢@JorgeHDZ。在我的配置中,我们有2分钟的实例,它能够管理每个实例40个请求(目标吞吐量利用率的最小值为80*0.5)。然后我配置了10s的最大挂起延迟,我们没有提到最大实例、最小空闲实例、最大空闲实例,所以都是自动类型。根据google文档,它应该处理85个并发请求。但我不知道为什么没有发生?我已经配置了系统日志(调试模式)。从日志中,我可以注意到应用程序引擎上下文加载只需要4到6秒。所以我认为它与Java8无关。您是否尝试在默认模式下设置所有配置?我不尝试默认配置@JorgeHDZ.请尝试使用默认配置可能您的配置正在影响您处理请求的方式我也尝试过使用默认配置,但我也面临同样的问题。