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

参考:https://developer.aliyun.com/article/1053272

参考配置

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

posted @ 2023-05-08 15:06  紅豆DuoLaameng  阅读(50)  评论(0)    收藏  举报