场景:
服务器配置比较低,导致部署在docker里的微服务不能完全启动,就想调整下jvm参数优化下,又因为启动容器用的是docker-compose,网上很多直接用docker run 调整JVM参数的方法不能用,参考多篇文章后总结一个适用docker-compose的完整方法。
方法:
1. Dokerfile里添加 ENV JAVA_OPTS=“”,如下:
RUN mkdir -p /test
WORKDIR /test
ADD ./target/test.jar ./test.jar
ENV JAVA_OPTS=""
CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar test.jar --spring.profiles.active=dev
#ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/test.jar"]
EXPOSE 6101
2.docker-compose 里加上environment的配置,如下:
blade-test:
image: "${REGISTER}/test:${TAG}"
environment:
- TZ=Asia/Shanghai
- JAVA_OPTS=-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
privileged: true
restart: always
networks:
- test_net
其中,JAVA_OPTS="…"是对JVM参数的配置。
3. 执行docker-compose up -d blade-test 启动就好了,查看是否生效,可以执行如下命令:
1)进入容器:docker exec -it 容器ID /bin/bash
2)直接输入 top 命令,如下:
可看到基本的容器占用的信息:pid、vsz、cpu、command等。(ctrl+c 或 q,退出top)
3)查看更具体的jvm内存占用:
top -m
就这么着OK了。
参考文章地址:https://blog.csdn.net/asenseof/article/details/107918861