我在 Spring 启动中创建了一些服务,我有11个胖jar,并将它们部署在docker容器中,我的疑问是每个jar都消耗了1到1.5 GB的RAM,而没有任何使用,我通过运行以下命令检查RAM:
docker stats containername
起初我以为是Java容器,所以我尝试更改为使用alpine的容器,但没有任何变化,所以我认为唯一的问题是我的jar。有没有办法更改jar正在使用的RAM?还是这种行为是正常的,因为每个jar都有一个嵌入式的tomcat?或者将一些 jar 放在一起作为 war 部署并且只将一个tomcat用于一组“ jar ”也许更好?有人可以分享他/她的经验吗?,
提前致谢。
最佳答案
您可以使用-e JAVA_OPTS="-Xmx64M -Xms64M"
设置docker容器的内存使用率。
docker 文件:
FROM openjdk:8-jre-alpine
VOLUME ./mysql:/var/lib/mysql
ADD /build/libs/application.jar app.jar
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
图像运行:
docker run -d --name container-name -p 9100:9100 -e JAVA_OPTS="-Xmx512M -Xms512M" imagename:tag
在这里,我设置了512Mb的内存使用率。您可以设置1g或根据您的要求。使用此命令运行后,检查您的内存使用情况。最高可达512Mb。
关于docker - Spring Boot消耗过多的RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768216/