Spring Boot与Web服务器内存消耗

时间:2016-01-26 23:49:07

标签: java spring spring-boot

如果我设置了 Web服务器(Tomcat,Undertow)已建立的内存消耗,例如-Xms 1024m -Xmx 1024m,JVM仍然可以通过缓冲区,线程和因子来增加内存消耗本地例程。这意味着1024m不会使用最大内存,我可能会看到S.O.一个不止于此的流程。

使用 Spring Boot 应用程序,每个jar都有自己的Web服务器,所以在这种情况下,如果我在java执行中没有设置任何-Xms / -Xmx,它将从JVM中获取默认值SO

所以,我怀疑的是,如果我在同一台服务器上运行多个Spring Boot应用程序,那么我不应该拥有比只有一个内置多个WAR的Web服务器更大的内存消耗吗?

内存问题也适用于CPU和磁盘使用情况, Spring Boot需要运行更多系统资源吗?

1 个答案:

答案 0 :(得分:1)

从您的帖子中可以看出,您是在比较Spring与非Spring应用程序,但我会认为是这种情况。

Spring does not have特定的系统资源要求。 通常,当您在容器中运行Spring应用程序时,您可以期望(略微)更高的资源消耗,因为框架会加载更多类并执行一些处理,如果您根本不使用Spring,则可以避免这些处理。

如果您考虑Spring Boot案例,您将看到可以通过两种方式运行Spring Boot Web应用程序:

  1. 通过独立容器
  2. package it as a WAR并在您选择的容器中运行
  3. 在第一种情况下,如果有多个应用程序,则需要更多资源,因为将运行多个容器(每个Spring Boot应用程序一个)。在第二种情况下,您需要更少,因为所有应用程序都合并在一个容器中。最后一个考虑因素更多的是你如何部署而不是Spring或Spring Boot的内在属性。