SpringBoot 2 与 Docker - 性能调优

如果我们想尽快启动应用(大多数人都这样做),则可以考虑做一些调整。这里有一些办法:

  • 使用 spring-context-indexer指向文档的链接)。对于小型应用而言,他不会增加太多,但有帮助;
  • 如果承担得起,请不要使用 actuator
  • 使用 Spring Boot 2.1 及 Spring 5.1;
  • 使用 spring.config.location(命令行参数或 System 属性等)修复 Spring Boot 配置文件的配置;
  • 通过 spring.jmx.enabled=false 关闭 JMX - 我们可能不需要在容器中使用它;
  • 使用 -noverify 运行 JVM。还要考虑 -XX:TieredStopAtLevel=1(这将在以后降低 JIT 的速度,但会节省启动时间);
  • 使用 Java 8 的容器内存提示:-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap。对于 Java 11,默认情况下是自动的。

我们的应用在运行时可能不需要完整的 CPU,但需要多个 CPU 才能尽快启动(至少 2、4 个会更好)。如果我们不介意启动速度慢,则可以将 CPU 降低到 4 以下。如果我们被迫以少于 4 个 CPU 的速度启动,则可以设置 -Dspring.backgroundpreinitializer.ignore=true,因为它会阻止 Spring Boot 创建一个它可能无法使用的新线程(适用于 Spring Boot 2.1.0 及更高版本)。

发布了231 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/105321733
今日推荐