Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决谷歌应用程序引擎延迟?_Java_Google App Engine_Google Cloud Platform_Paas_Google Cloud Endpoints V2 - Fatal编程技术网

Java 如何解决谷歌应用程序引擎延迟?

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.由于时间过

我们的项目运行在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应放大以处理该请求为什么没有发生?

  • 放大时,请求需要43.6秒。在图2中,我们可以看到请求在20:27:01:663 IST发出,API执行的第一行在20:27:40:407 IST开始在这段时间内发生了什么?我可以得到这段时间的日志吗?
  • 在scaleup之后,后续请求也需要很长时间才能送达。例如,API请求通常在2秒内完成。在图3中,我们可以注意到API在没有加载请求过程的情况下需要42.4s,然后请求在20:27:01:728 IST到达。API执行的第一行在IST的20:27:40:708开始这段时间内发生了什么?

  • 我认为这与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.请尝试使用默认配置可能您的配置正在影响您处理请求的方式我也尝试过使用默认配置,但我也面临同样的问题。