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
标签:tmp,JVM,启动,256M,XX,参数,内存,jvm,GC From: https://www.cnblogs.com/duolaa/p/17381840.html参考:https://blog.csdn.net/yzh_1346983557/article/details/123004111