SpringBoot项目启动内存占用过高问题及解决
作者:JAVA·D·WangJing
SpringBoot应用启动占用1G内存,访问量低导致资源浪费,通过调整JVM参数(如MetaspaceSize、Xms/Xmx、Xmn、Xss)及使用CMS收集器,可优化内存使用,减少资源浪费
一、问题描述
在使用SpringBoot 开发过程中
发现不管是本地还是测试环境只要一启动,动不动就占用1G内存
然而本地和测试环境的访问量却并没有多少,导致资源浪费
二、解决方案(亲测可用)
2.1、启动命令示例(具体配置可根实际情况调整)
nohup java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xms128m -Xmx128m -Xmn32m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC ****.jar >/dev/null 2>&1&
2.2、命令参数详解
- -XX:MetaspaceSize=128m:元空间默认大小
- -XX:MaxMetaspaceSize=256m:元空间最大大小
- -Xms128m:堆最大大小
- -Xmx128m:堆默认大小
- -Xmn32m:新生代大小
- -Xss256k:栈最大深度大小
- -XX:SurvivorRatio=8:新生代分区比例 8:2
- -XX:+UseConcMarkSweepGC:指定使用的垃圾收集器,这里使用CMS收集器
- -XX:+PrintGCDetails:打印详细的GC日志
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。