我正在应用程序引擎标准环境中部署SpringBoot的基本框架,运行时为java11。
我的应用程序。yaml有以下条目
runtime: java11
instance_class: F4
automatic_scaling:
target_cpu_utilization: 0.65
min_instances: 0
max_instances: 100
min_pending_latency: 30ms
max_pending_latency: automatic
max_concurrent_requests: 50
env_variables:
GAE_ENV: "standard"
entrypoint: java -noverify -jar myserver-0.0.1-SNAPSHOT.jar
当我部署应用程序使用app.yaml或jar文件,应用程序得到部署,但我得到以下错误。
在总共服务0个请求后,超过了256 MB的软内存限制,269 MB。考虑在app.yaml.中设置一个更大的实例类
我将我的实例从F1升级到F4,但得到了相同的错误。我的应用程序中没有太多代码或工作,它只是一个plane spring启动应用程序,包含所有库,如cloud SQL、spring security。但从功能的角度来看,应用程序中并没有任何东西。
我也附加其他信息我在谷歌云日志
此请求导致为应用程序启动一个新进程,从而导致首次加载应用程序代码。因此,与应用程序的典型请求相比,此请求可能需要更长的时间并使用更多的CPU。
在处理此请求时,发现处理此请求的进程使用太多内存并终止。这可能会导致一个新进程被用于对应用程序的下一个请求。如果经常看到此消息,则应用程序中可能存在内存泄漏,或者使用的实例内存不足。考虑在app.yaml.中设置一个更大的实例类
这是我的pom。xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.sandeepapplabs</groupId>
<artifactId>mysalesbuddyserver</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>My Sales Buddy</name>
<description>My Sales Buddy server project</description>
<properties>
<java.version>11</java.version>
<spring-boot-admin.version>2.3.1</spring-boot-admin.version>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- Exclude the Tomcat dependency -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId>
</dependency> -->
<!-- <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId>
<scope>test</scope> </dependency> -->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>1.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.4.0</version>
<configuration>
<projectId>mysalesbuddy3</projectId>
<version>1</version>
</configuration>
</plugin>
</plugins>
</build>
</project>
有人能告诉我如何解决这个问题吗?
即使您的应用程序没有消耗很多资源,也可能是VM加上运行的所有服务正在消耗这些资源。
日志中提到的解决方案是切换到更大的实例。
如果您已经部署了一个具有更大实例的新版本,我建议您验证这是调度所有流量的版本,您可以通过进入AppEngine来实现这一点-
我的服务类中出现空指针异常。我有一个名为IAmazonUtilService的自动连线myservice类。但它面临着null pointervexception。 另外,我写了属性Util从application.properties读取数据,这也是不工作的。请帮帮我。 重要的Amazon数据ervice.java Git链接:https://github.com/Ezhilarasu1330/
我很好奇如何处理GAE中的内存限制。目前,我有这个应用程序,需要大量的CPU/内存。 我尝试在GAE上使用b8实例运行它(基本上是使用4.8GHz CPU的顶级实例) 我还尝试手动设置CPU的数量 但无论我做什么,我总是达到同样的记忆限制。。。(见下文) GET500 0 B 43 s Unknown/_ah/start在总共处理0个请求后,超过了2048 MB的软内存限制,达到3163 MB。考
我正在试图了解K8S吊舱内存分配的行为,但到目前为止,我在互联网上读到的材料没有什么好运气。 我的问题是,如果我有一个用以下值定义的内存POD模板 假设我的应用程序突然需要更多内存,POD分配了4Gi(从2Gi初始内存)来完成任务。POD是否会将其获取的额外2Gi返还给底层操作系统,并在任务完成后再次成为2Gi POD,或者在任务完成后将作为具有4Gi内存的POD使用。 我的应用程序是一个在Apa
我们有一个可怕的经验与gae围棋。当我们的应用程序是一个免费的,我们从来没有超过软私有内存限制的问题。我们抢了定额,因此决定付款。我们每天的预算定为3美元。付费服务激活后,我们可以再次使用该网站,超额配额消失了。几个小时后,我们得到了这个超软私有内存限制,除了这个,再也看不到任何东西了。我试图清除数据存储中的一些大数据,禁用内置插件,但仍然没有运气。 我在代码中做了一些测试,以确定故障来自何处。删
我使用弹性Beanstalk在AWS服务器上部署了我的dockerized微服务,它是使用Akka-HTTP(https://github.com/theiterators/akka-http-microservice)和Scala编写的。 我已经为每个docker和性能问题分配了512MB的内存大小。我注意到当服务器收到更多的请求(如20%、23%、45%...)时,CPU占用会增加&取决于负载
我的一个GAE任务队列请求超过了软内存限制(下面的日志)。我对软内存限制的理解是,它让请求完成,然后在完成后关闭实例。 然而,从日志来看,当我达到软内存限制时,执行似乎停止了。在内存限制消息之后,我没有看到更多的日志代码,我已经检查了我的状态,看起来请求没有完成。我不确定它是否重要,但此请求正在延迟库TaskQueue中执行。 因此,如果TaskQueue达到软私有内存限制,执行是继续直到请求完成