JVM 启动参数
JVM 启动参数
通过 jmap 查看 JVM 内存分配
jmap -heap [pid]
一个Java
进程最大占用的物理内存为:
Max Memory = eden + survivor + old + String Constant Pool + Code cache + compressed class space + Metaspace + Thread stack(*thread num) + Direct + Mapped + JVM + Native Memory
参考配置
8G物理内存
-Xms4096m
-Xmx4096m
-Xss256k
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=256M
-XX:MaxDirectMemorySize=1024M
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/jvm/heapdump.hprof
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/tmp/jvm/gc-%t.log
-Duser.timezone=Asia/Shanghai
-Dfile.encoding=UTF-8
4G物理内存
-Xms2048m
-Xmx2048m
-Xss256k
-XX:MetaspaceSize=256M
-XX:MaxMetaspaceSize=256M
-XX:MaxDirectMemorySize=1024M
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/jvm/heapdump.hprof
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/tmp/jvm/gc-%t.log
-Duser.timezone=Asia/Shanghai
-Dfile.encoding=UTF-8
参数释义
-Xms4096m #初始堆大小,建议和最大堆大小相同
-Xmx4096m #最大堆大小
-Xss256k #每个线程栈大小
-XX:MetaspaceSize=256M #元空间Full GC的阈值,并不是元空间初始值!默认值20.8M,建议和元空间最大值相同
-XX:MaxMetaspaceSize=256M #元空间最大值,避免元空间的内存溢出
-XX:MaxDirectMemorySize=1024M #最大堆外内存大小,默认和最大堆大小相同。可适量增大,例如nio使用较多时
-XX:+UseG1GC #使用G1垃圾回收器,6~8G堆内存以上推荐使用
-XX:MaxGCPauseMillis=200 #G1 GC最大停顿时间(毫秒)
-XX:+HeapDumpOnOutOfMemoryError #内存溢出时dump堆
-XX:HeapDumpPath=/tmp/jvm/heapdump.hprof #dump堆文件的路径
-XX:+PrintGCDetails #打印GC详细信息
-XX:+PrintGCDateStamps #打印执行GC的日期时间戳
-Xloggc:/tmp/jvm/gc-%t.log #GC日志文件的地址,%t:GC日志文件添加日期后缀
-Duser.timezone=Asia/Shanghai #时区
-Dfile.encoding=UTF-8 #文件编码
参考:https://blog.csdn.net/yzh_1346983557/article/details/123004111
查询
查询内存消耗最多的前10个进程:
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
参考:https://blog.csdn.net/yzh_1346983557/article/details/123004111
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix