springboot设置运行内存_docker run容器 设置 jvm 运行springboot 程序
首先dockerfile中需要設(shè)置一個變量
比如我Dockerfile內(nèi)容
FROM openjdk:8-jre-alpine
VOLUME/tmp
ADD *.jar app.jar
ENV TZ=PRC
RUN ln-snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#設(shè)置變量 JAVA_OPTS
ENV JAVA_OPTS=""#這樣寫會以shell方式執(zhí)行,會替換變量
ENTRYPOINT java ${JAVA_OPTS}-Djava.security.egd=file:/dev/./urandom -jar /app.jar
#下面這樣寫法不行,他只是拼接不會識別變量
#ENTRYPOINT ["java","${JAVA_OPTS}","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
EXPOSE 30100
然后
運行docker run命令
意思是運行時通過-e重置覆蓋環(huán)境變量中JAVA_OPTS參數(shù)信息。
docker run? -e??JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M'
如下:
sh "docker login -u ${REGISTRY_UID} -p ${REGISTRY_PID} ${REGISTRY_URL}"echo"說明:docker run -p 外部端口:內(nèi)部端口 -m 上限500m --異常重啟 -e參數(shù),這里注入注冊中心 --name項目名稱 鏡像地址"sh"docker run --restart=always -p ${OUT_PORT}:${IN_PORT}"+
"-d -v ${LOG_PATH}:${LOG_PATH}"+
"-m 1000M --memory-swap -1"+
//jvm設(shè)置2G內(nèi)存=============這里是設(shè)置內(nèi)存
"-e JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M' "+
//設(shè)置外部IP
"-e eureka.instance.ip-address=${nodeIp}"+
//設(shè)置外部端口
"-e eureka.instance.non-secure-port=${OUT_PORT}"+
"--add-host=milike${EUREKA_PORT_A}:${EUREKA_HOST_A} --add-host=milike${EUREKA_PORT_B}:${EUREKA_HOST_B} --add-host=milike${EUREKA_PORT_C}:${EUREKA_HOST_C}"+
"--name ${PROJECT_NAME}"+
"$REPOSITORY"echo"發(fā)布鏡像完成${REPOSITORY}"
最后,在docker容器中,執(zhí)行
進入容器
docker exec -it 容器ID/名稱 /bin/bash
查看java應(yīng)用,就可以看到
ps -ef | grep java
結(jié)果如下:
/myapp # ps -ef|grep java1 root 2:49 java -Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -Djava.security.egd=file:/dev/./urandom -jar /app.jar466 root 0:00 grep java
另:某位大神給出個比較合理的設(shè)置jvm參數(shù)。大多數(shù)機器都可以采用
分配內(nèi)存 堆配置推薦
2G-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M
3G-Xmx2048M -Xms2048M -Xmn768M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M
4G-Xmx2688M -Xms2688M -Xmn960M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M
5G-Xmx3392M -Xms3392M -Xmn1216M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M
6G-Xmx4096M -Xms4096M -Xmn1536M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M
7G-Xmx4736M -Xms4736M -Xmn1728M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M
8G-Xmx5440M -Xms5440M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M
完
總結(jié)
以上是生活随笔為你收集整理的springboot设置运行内存_docker run容器 设置 jvm 运行springboot 程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql后台修改表_mysql之约束以
- 下一篇: java 内部类怎么new_[转]【Ja