带有tomcat的SpringBoot应用程序在Openshift中消耗了更多的资源



我正在Openshift环境中部署一个spring-boot web应用程序。由于我们在同一个启动项目中使用JSP和CSS等web组件,因此我们将应用程序部署为Openshift环境中的WAR文件。我还添加了tomcat嵌入jasper来解析这些web组件并执行WAR文件。

但问题是,当我在Openshift环境中部署它时,应用程序会消耗超过1GB的资源。有什么方法可以减少应用程序的内存消耗吗?

Dockerfile

FROM maven:3.5-jdk-8-alpine AS MAVEN_BUILD
COPY pom.xml /build/
COPY src /build/src/
WORKDIR /build/
RUN mvn -DskipTests=true package
FROM tomcat:8.0.51-jre8-alpine
WORKDIR /usr/local/tomcat/webapps/
RUN rm -rf /usr/local/tomcat/webapps/*
COPY --from=MAVEN_BUILD /build/target/services-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh","run"]

我尝试更改为不同的tomcat映像,但当我部署时,只有tomcat启动,并且我的应用程序没有部署在tomcat中。我也在为此寻求建议。当我使用不同的tomcat图像时,会记录以下内容。

图片:tomcat:10.0.0-jdk8-adoptopenjdk-openj9

15-Sep-2020 07:03:31.484 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war]
15-Sep-2020 07:03:38.884 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Sep-2020 07:03:39.048 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [7,563] ms
15-Sep-2020 07:03:39.054 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-Sep-2020 07:03:39.067 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [7671] milliseconds

谢谢。

如所示

FROM maven:3.5-jdk-8-alpine AS MAVEN_BUILD
COPY pom.xml /build/
COPY src /build/src/

您正在处理整个src文件夹。我想这会占用很多内存。

我建议从DockerFile中排除mvn包,单独运行mvn包并单独使用以下部分:

FROM tomcat:8.0.51-jre8-alpine
WORKDIR /usr/local/tomcat/webapps/
RUN rm -rf /usr/local/tomcat/webapps/*
COPY --from=MAVEN_BUILD /build/target/services-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh","run"]

最新更新