先看Linux内存大小(假设为2G)
cat /proc/meminfo |grep MemTotal
查看java初始配置
java -XX:+PrintFlagsInitial
Tomcat配置
export JAVA_OPTS="-server -Xms*M -Xmx*M ***"
-server 即tomcat以真实的production模式运行(更好的性能), 默认为-client模式
详细配置
#最大堆内存
-Xmx1400M
#初始堆内存 -Xms1400M
#年轻代 内存 -Xmn200M
#持久代 内存,(JDK1.7 ) -XX:PermSize=100M -XX:MaxPermSize=100M
#元空间 内存(JDK1.8) https://www.cnblogs.com/dennyzhangdd/p/6770188.html
-XX:MetaspaceSize=100m
-XX:MaxMetaspaceSize=100m
#单个线程 的内存, 小项目128k一般较大项目256K够了 -Xss256K
#关闭System.gc() -XX:+DisableExplicitGC
# Eden区与Survivor区的大小比值 设置为8,则Eden区:Survivor=8:2, 一个Survivor区占整个年轻代的1/10
#设置为1, 则Eden区:Survivor=1:2,(Survivor固定为2) 所以Eden区= Xmn200m/3=66.6M
-XX:SurvivorRatio=1
#设置并发收集器 -XX:+UseConcMarkSweepGC
#设置年轻代为并行收集 -XX:+UseParNewGC
#降低标记停顿 -XX:+CMSParallelRemarkEnabled
#在FULL GC的时候, 对年老代的压缩 -XX:+UseCMSCompactAtFullCollection
#多少次后进行内存压缩 由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理. -XX:CMSFullGCsBeforeCompaction=0
-XX:+CMSClassUnloadingEnabled
#内存页的大小不可设置过大, 会影响Perm的大小 -XX:LargePageSizeInBytes=128M
#原始类型的快速优化 -XX:+UseFastAccessorMethods
#使用手动定义初始化定义开始CMS收集 禁止hostspot自行触发CMS GC -XX:+UseCMSInitiatingOccupancyOnly
#(Xmx-Xmn)*(100-CMSInitiatingOccupancyFraction)/100>=Xmn 就不会出现promotion failed -XX:CMSInitiatingOccupancyFraction=80
#每兆堆空闲空间中SoftReference的存活时间 一般为0 -XX:SoftRefLRUPolicyMSPerMB=0
#garbage collects before printing the histogram. -XX:+PrintClassHistogram
#GC 输出的形式 -XX:+PrintGCDetails
#GC 输出的形式 可与 -XX:+PrintGC -XX:+PrintGCDetails混合使用 -XX:+PrintGCTimeStamps
#打印GC前后的详细堆栈信息 -XX:+PrintHeapAtGC
#把相关日志信息记录到文件以便分析. -Xloggc:log/gc.log
参考 配置收集器,
https://blog.csdn.net/wfh6732/article/details/57422967?utm_source=itdadao&utm_medium=referral
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)