Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Performance 使用JMeter进行负载测试时,Google App Engine中出现502服务器错误_Performance_Google App Engine_Spring Boot_Jmeter - Fatal编程技术网

Performance 使用JMeter进行负载测试时,Google App Engine中出现502服务器错误

Performance 使用JMeter进行负载测试时,Google App Engine中出现502服务器错误,performance,google-app-engine,spring-boot,jmeter,Performance,Google App Engine,Spring Boot,Jmeter,我在Google app Engine Flexible中部署了一个简单的Spring boot应用程序。应用程序。有两个API,一个用于将用户数据添加到数据库中(xxx.appspot.com/add),另一个用于从数据库中获取所有用户数据(xxx.appspot.com/all) 我想看看GAE如何扩展负载,因此使用JMeter创建了一个负载,在10秒内增加了100个用户的并发性,并在半秒的延迟内调用这两个API。虽然它可以正常运行一段时间(只有一个实例),但在30秒左右的时间后,它开始失败

我在Google app Engine Flexible中部署了一个简单的Spring boot应用程序。应用程序。有两个API,一个用于将用户数据添加到数据库中(xxx.appspot.com/add),另一个用于从数据库中获取所有用户数据(xxx.appspot.com/all)

我想看看GAE如何扩展负载,因此使用JMeter创建了一个负载,在10秒内增加了100个用户的并发性,并在半秒的延迟内调用这两个API。虽然它可以正常运行一段时间(只有一个实例),但在30秒左右的时间后,它开始失败,出现“java.net.SocketException”或“服务器响应状态为502”

出现此错误后,当我尝试从浏览器访问同一API时,它会显示

错误:服务器错误

服务器遇到临时错误,无法完成您的操作 要求请在30秒后重试

服务在大约30分钟后恢复正常,并且无论何时进行负载测试,它都会重复上述相同的行为。我希望GAE能够根据输入的负载自动伸缩,从而在没有任何停机时间的情况下(使用多个实例)处理它,而只是崩溃或阻塞服务(日志中没有任何信息)。我的app.yaml配置是

runtime: java
env: flex
service: hello-service
automatic_scaling:
  min_num_instances: 1
  max_num_instances: 10

我有点受不了这一点,任何帮助都将不胜感激。提前感谢。

解决方案是增加资源配置,详情如下

考虑到我没有设置资源参数,它默认为CPU和内存的预定义值。在本例中,默认值为 内存设置为0.6GB。AppEngine Flex实例使用大约0.4GB的内存 对于开销过程。鉴于众所周知Java会消耗更高的内存,因此 开销过程消耗的资源很可能超过 大约0.4GB的值。现在,应用程序引擎中的实例由于 由于各种原因,包括内存使用导致的优化。这 解释了您的实例发生故障的原因,它表明Tomcat正在启动 由于nginx正在运行,所以出现了502错误 无法完成请求。如果不能完全消除502,修复上述问题可能会减少


我在app.yaml 502中指定了resources属性并增加了配置后,错误似乎消失了。

您在日志查看器中看到了什么?请参见@user7294900,我已在app.yaml中将其更改为手动缩放。但是,我在控制台中找不到从“谷歌所有”的VM切换到“自有”VM的方法。我在GCE区域找不到实例。我在日志中得到的详细错误也在这个链接中。@DanCornilescu高级日志显示了这一点。在前面的评论中提到了详细的日志。我尝试过禁用和启用“健康检查”。在app.yaml中添加了cpu利用率、目标利用率属性。然而,我仍然面临同样的问题。即使在我的代码中覆盖了它,应用程序也会定期重新启动。谢谢KingKari!我也有同样的问题,不知道如何解决。您的解决方案对我有效。谢谢KayKay,我提交了一个bug:。