微服务-springcloud一次线上内存优化
2021/4/27 7:27:02
本文主要是介绍微服务-springcloud一次线上内存优化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、解决容器打包“体积”大
- 二、解决运行内存占用大
前言
- 当今流行的spring cloud配合docker容器部署可以说是天衣无缝,但是存在一个缺点就是spring
cloud制作的容器镜像比较大以及启动运行占用的内存空间比较大。
一、解决容器打包“体积”大
FROM java:8 VOLUME /tmp ADD xxxx.jar /app.jar RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN bash -c 'touch /app.jar' CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar", "-Duser.timezone=GMT+08", "/app.jar"]
- 通过选择java:8作为基础镜像,打包出来的images要900M左右,现在在本地打包以及线上部署的效率会很低,同时比较占用磁盘空间
解决:
FROM openjdk:8-jdk-alpine VOLUME /tmp ADD xx.jar /app.jar ENV TZ=Asia/Shanghai RUN echo "http://mirrors.aliyun.com/alpine/v3.4/main/" > /etc/apk/repositories && apk add --no-cache tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone RUN set -xe && apk --no-cache add ttf-dejavu fontconfig ENTRYPOINT java -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap $JAVA_OPTS -jar /app.jar
- 采用alpine作为基础镜像,可以大大减小容器体积问题
二、解决运行内存占用大
- 这里使用IBM的openjdk8-openj9进行问题解决,现在是IBM已经捐献给eclipse
FROM adoptopenjdk/openjdk8-openj9:alpine-slim VOLUME /tmp ADD xx.jar /app.jar ENV TZ=Asia/Shanghai RUN echo "http://mirrors.aliyun.com/alpine/v3.12/main/" > /etc/apk/repositories && apk add --no-cache procps curl bash tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone RUN set -xe && apk --no-cache add ttf-dejavu fontconfig ENTRYPOINT java -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap $JAVA_OPTS -Xshareclasses -Xquickstart -jar -Duser.timezone=Asia/Shanghai /app.jar
- alpine-slim为精简版,其中安装的jdk会缺少相关的监控工具如jstat,jmap,如果需要这里工具,将alpine-slim替换成alpine
- 最终内存占用可以减少百分之60左右,具体根据实现业务功能情况来定
这篇关于微服务-springcloud一次线上内存优化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南