减少Spring Boot的JVM内存占用的Docker三种配置

栏目: Java · 发布时间: 4年前

内容简介:该文提出了减少Spring Boot减少JVM占用的三种Dockerfile镜像配置:虽然我们在应用解决方案时总是需要考虑上下文,但对我来说,虽然仍然没有找到使用不合适的情况,但这并不意味着它将成为一个银弹解决方案,请记住,最好是测试替代品,看看哪种更适合您的需求。

该文提出了减少Spring Boot减少JVM占用的三种Dockerfile镜像配置:

  • OpenJ9 :取代Hotspot的IBM Eclipse项目。它已经被开发很长一段时间,看起来已经足够成熟,可以用于生产。您可以立即轻松地获益,替换一些基本镜像和一些参数可能足以为您的应用程序提供巨大的推动力 - 我已经通过更改 Dockerfile基本映像替换了一些应用程序,节约了大约 1/3的内存占用,增强了吞吐量。
    FROM adoptopenjdk/openjdk8-openj9:alpine-slim
    COPY target/app.jar /my-app/app.jar
    ENTRYPOINT java $JAVA_OPTS -Xshareclasses -Xquickstart -jar /my-app/app.jar
  • GraalVM :围绕这个由Oracle实验室开发的有前途的虚拟机进行了大量宣传。它为您提供了将应用程序编译为本机镜像的选项,生成镜像非常非常快且内存消耗很少,吸引人眼球的另一个功能是能够与多种语言(如Javascript,Ruby,Python和Java)进行交互操作。
    FROM oracle/graalvm-ce:1.0.0-rc15
    COPY target/app.jar /my-app/app.jar
    ENTRYPOINT java $JAVA_OPTS -jar /my-app/app.jar
  • Fabric8 shell:一个bash脚本,可根据应用程序当前运行环境自动为您配置JVM参数。它 可以在这里下载 ,是这个 研究 项目的产物。它降低了不少内存:
    FROM java:openjdk-8-alpine
    COPY target/app.jar /my-app/app.jar
    COPY run-java.sh /my-app/run-java.sh
    ENTRYPOINT JAVA_OPTIONS=${JAVA_OPTS} JAVA_APP_JAR=/my-app/app.jar /my-app/run-java.sh

虽然我们在应用解决方案时总是需要考虑上下文,但对我来说, 获胜者是OpenJ9, 从而以最少的配置实现了生产就绪的性能和内存占用。

虽然仍然没有找到使用不合适的情况,但这并不意味着它将成为一个银弹解决方案,请记住,最好是测试替代品,看看哪种更适合您的需求。

为什么不用GraalVM?

GraalVM是一个伟大的项目,在接下来的几个月里也许它能颠覆让本文的结论,但到目前为止,我发现了一些不能让我想在生产中使用它的东西,特别是Spring Boot。

  • 不是GA - 目前正在发布candidate 15版本
  • 对于没有函数bean定义的Spring Boot,本机镜像仍然无法正常运行
  • 正确构建本机镜像需要做更多的工作
  • 原生镜像速度非常快,但您必须考虑丢失一些JVM功能

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

赛博空间的奥德赛

赛博空间的奥德赛

(荷兰)约斯·德·穆尔 (Jos de Mul) / 麦永雄 / 广西师范大学出版社 / 2007-2 / 38.00元

本书揭示了数码信息时代的电子传媒与赛博空间为人类历史的发展提供的新的可能性。本书第一部分“通向未来的高速公路”,涉及无线想象、政治技术和极权主义在赛博空间的消解等题旨;第二部分“赛博空间的想象” ,讨论空间文学探索简史、电影和文化的数码化;第三部分”可能的世界” ,关涉世界观的信息化、数码复制时代的世界、数码此在等层面;第四、五部分探讨主页时代的身份、虚拟人类学、虚拟多神论、赛博空间的进化、超人文......一起来看看 《赛博空间的奥德赛》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具