栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何减少Spring Boot的内存使用量?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何减少Spring Boot的内存使用量?

在这里玩游戏的时间不算太晚,但是我在Docker上的容器化Spring
Boot应用程序遇到了同样的问题。在最简单的具有单个控制器和嵌入式Tomcat的Spring
Boot应用程序上,您将获得的最低内存总量约为72M。投入Spring Data REST,Spring
Security和一些JPA实体,您的最低要求为200M-300M。通过使用以下JVM选项,您可以将一个简单的Spring
Boot应用程序总数降低到约72M。

使用

-XX:+UseSerialGC
this将与分配堆内存的线程而不是专用GC线程内联执行垃圾回收

使用

-Xss512k
此选项会将每个线程的堆栈内存限制为512KB,而不是默认的1MB

使用

-XX:MaxRAM=72m
This将限制JVM对堆和非堆托管内存的计算在此值的范围内。

除了上述JVM选项之外,您还可以在

application.properties
文件内部使用以下属性:

server.tomcat.max-threads = 1
这会将HTTP请求处理程序线程数限制为1(默认值为200)


这是一个使用上述限制和docker 参数

docker stats
运行 非常 简单的Spring Boot应用程序的示例
-m72m
。如果我降低的值低于此值,我将无法启动应用程序。

83ccc9b2156d: Mem Usage: 70.36MiB / 72MiB | Mem Percentage: 97.72%

在这里,您可以看到退出时所有本机和Java堆内存的明细。

Native Memory Tracking:Total: reserved=1398681KB, committed=112996KB-      Java Heap (reserved=36864KB, committed=36260KB)      (mmap: reserved=36864KB, committed=36260KB)-          Class (reserved=1086709KB, committed=43381KB)      (classes #7548)      (  instance classes #7049, array classes #499)      (malloc=1269KB #19354)       (mmap: reserved=1085440KB, committed=42112KB)       (  metadata:   )      (    reserved=36864KB, committed=36864KB)      (    used=36161KB)      (    free=703KB)      (    waste=0KB =0.00%)      (  Class space:)      (    reserved=1048576KB, committed=5248KB)      (    used=4801KB)      (    free=447KB)      (    waste=0KB =0.00%)-         Thread (reserved=9319KB, committed=938KB)      (thread #14)      (stack: reserved=9253KB, committed=872KB)      (malloc=50KB #74)       (arena=16KB #26)-Code (reserved=248678KB, committed=15310KB)      (malloc=990KB #4592)       (mmap: reserved=247688KB, committed=14320KB)-  GC (reserved=400KB, committed=396KB)      (malloc=272KB #874)       (mmap: reserved=128KB, committed=124KB)-       Compiler (reserved=276KB, committed=276KB)      (malloc=17KB #409)       (arena=260KB #6)-       Internal (reserved=660KB, committed=660KB)      (malloc=620KB #1880)       (mmap: reserved=40KB, committed=40KB)-         Symbol (reserved=11174KB, committed=11174KB)      (malloc=8417KB #88784)       (arena=2757KB #1)-    Native Memory Tracking (reserved=1858KB, committed=1858KB)      (malloc=6KB #80)       (tracking overhead=1852KB)-    Arena Chunk (reserved=2583KB, committed=2583KB)      (malloc=2583KB)-        Logging (reserved=4KB, committed=4KB)      (malloc=4KB #179)-      Arguments (reserved=17KB, committed=17KB)      (malloc=17KB #470)-         Module (reserved=137KB, committed=137KB)      (malloc=137KB #1616)

也不要指望从中获得任何不错的性能,因为我想GC会在此设置下频繁运行,因为它没有太多可用的备用内存



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号