jdk8升级到11-控制docker容器内存

一个月前就已经弄好了但是忘记写博客了。。

先在idea编译项目里使用jdk11

11版本11.0.12

直接下载后在idea更改后,启动无error 接口正常运行、只出现了警告 如图:

image-20211023200825744

警告为异常反射

因为是maven下面导的包,先不做处理。

docker内存控制实践 :

首先需要搞一个jdk11的镜像
可以看这篇文章https://lequ7.com/guan-yu-javajdk11-she-zhi-docker-rong-qi-zi-yuan-gan-zhi.html

最终是生成一个200m左右的镜像

image-20211023200915948

DockerFIle改写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

FROM registry.cn-zhangjiakou.aliyuncs.com/zhaoyuan_image/java:11.0.8

# 设置时区与语言环境变量
ENV TIME_ZONE=Asia/Shanghai \
LANG=en_US.UTF-8 \
LANGUAGE=en_US.UTF-8 \
LC_ALL=en_US.UTF-8

ENV JAVA_OPTS="-XX:+UseContainerSupport -XX:InitialRAMPercentage=50 -XX:MaxRAMPercentage=80"

MAINTAINER "张洪滨"

VOLUME /libary/config-server/target/

ADD ./target/config-server-0.0.1-exec.jar /app.jar

EXPOSE 8870
ENTRYPOINT java ${JAVA_OPTS} -jar /app.jar

-XX:InitialRAMPercentage 初期容器内存占比, -XX:MaxRAMPercentage 最大容器内存占比 最要的配置
改写docker-compose.yml

image-20211023201237405

在测试机启动查看cpu、内存占用

image-20211023201253162

参数生效非常nice!!!
我开始尝试将所有服务都进行配置
其中有些服务有问题一直不停重启,
查得注册中心的报错

java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present

查看了这篇文章https://blog.csdn.net/weixin_45012575/article/details/100548253
使用导包的方式得到解决 eureka-server正常启动

image-20211023201349522

image-20211023201403229

2核8g 7个容器 占用2g多一点的内存 完美!!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!