gpt4 book ai didi

performance - 使用 JMeter 进行负载测试时 Google App Engine Flexible 中的 502 服务器错误

转载 作者:行者123 更新时间:2023-12-05 02:18:19 26 4
gpt4 key购买 nike

我已经在 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 时,它显示,

Error: Server Error

The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.

服务在 30 分钟左右后恢复正常,每当负载测试发生时,它都会重复上述相同的行为。我希望 GAE 能够根据传入的负载自动缩放以处理它而无需任何停机时间(使用多个实例),而只是崩溃或阻止服务(日志中没有任何信息)。我的 app.yaml 配置是,

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

我对这个有点困惑,任何帮助将不胜感激。提前致谢。

最佳答案

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

Given that I did not set a resource parameter, it defaulted to the pre-defined values for both CPU and Memory. In this case, the default memory was set at 0.6GB. App Engine Flex instances uses about 0.4GB for overhead processes. Given Java is known to consume higher memory, there is a great likelihood that the overhead processes consumed more than the approximate 0.4GB value. Now instances in App Engine are restarted due to a variety of reasons including optimization due to memory use. This explains why your instances went off and it shows Tomcat is starting up (they got restarted) and ends up in 502 error due to the nginx is not able to complete the request. Fixing the above may lessen if not completely eliminate the 502s.

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

关于performance - 使用 JMeter 进行负载测试时 Google App Engine Flexible 中的 502 服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45719144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com