SpringBoot JVM参数调优
JVM内存模型图
1. jar包启动时添加如下参数
java -Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8 -jar xxx.jar
2. 常用参数: https://blog.csdn.net/WZH577/article/details/109562786
3. 内存优化:
栈: 1M, 一个线程1M, 一个线上Tomcat项目可能有300个线程, 就是300M; 堆: 一般会把机器物理内存的一半分给堆;
32位操作系统, 单个进程内存的最大寻址空间为2的32次方, 也就是4G内存, 故-Xmx一般小于2G
64位操作系统, 单个进程内存的最大寻址空间为2的64次方, 非常大, 故-Xmx最大值可以认为是无限大
元空间: 正常512M肯定够了;
4. 服务器查看jvm信息
jmap -heap 进程id
5. 增加gc日志输出和oom dump文件输出
java -Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/app/gc/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/dump/heapdump.hprof -Dfile.encoding=utf-8 -jar xxx.jar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下