Spring Boot 和 Spring Cloud 应用内存如何管理?

本文探讨了在Spring Boot和Spring Cloud环境中,微服务内存管理的问题。通过实例展示了三个简单的微服务如何占用1.5GB内存,主要集中在堆内存的分配和管理,包括年轻代、老年代的概念。文章提到了JVM内存的堆和非堆部分,以及如何通过调整JVM参数优化内存使用,如设置年轻代大小、Metaspace大小等。同时,对比了不同Web容器如Tomcat、Undertow、Jetty对内存的影响。
摘要由CSDN通过智能技术生成

Memory Management

在整体应用架构中,非生产环境情况下,一般 1GB 或者 2GB 的 RAM 就足够了。如果我们将这个应用程序划分为 20 或 30 个独立的微服务,那么很难期望 RAM 仍将保持在 1GB 或 2GB 左右。特别是如果我们使用 Spring Cloud 的时候。

首先,准备三个服务,Eureka 服务 + 提供 REST API 的两个简单的微服务,并将微服务注册到 Eureka。此处,不以任何方式限制这些应用程序的内存使用。

就像你在下图看到的一样,三个微服务大概占用了电脑 1.5GB 的 RAM 内存。这三个服务是最简单的应用程序,基本没有数据处理量,对于这样的内存消耗量,显然是不理想的。RAM 的最低使用量是用于 Eureka
发现服务,最大的用于初始化声明式客户端以调用其他服务的 API。

未限制的内存用量

关于内存使用量如下图 JProfiler 制作的图表。如图所示,内存使用受堆影响,与非堆相比,它占用了大量空间。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值