以下以操作系统8g内存为参考,设置jvm各参数的参考值。
参数名 | 参考值 | 解释 | 备注 |
-Xms | 4096m | 初始堆大小,默认为物理内存的1/64且小于1GB | |
-Xmx | 4096m | 最大堆大小,默认为物理内存的1/4且小于1GB | |
-Xmn | 3072m | 新生代大小 | |
-XX:NewSize | 默认 | 新生代初始堆大小,应小于-Xms的值 | |
-XX:MaxNewSize | 默认 | 新生代最大堆大小,应小于-Xmx的值 | |
-XX:NewRatio | 默认 | 新生代和年老代的比值。为 3,表示新生代与年老代比值为 1:3 | |
-XX:SurvivorRatio | 新生代中 Eden 区与两个 Survivor 区的比值 | ||
-Xss | 128k | 每个线程的堆栈大小 |
例子
java \
-Xms=4096m \
-Xmx=4096m \
-Xmn=3072m \
-Xss=128k \
-XX:+ DisableExplicitGC \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/oomError/ \
-jar xxx.jar
上面的例子中
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/oomError/指定了oom异常dump的路径。
-XX:+ DisableExplicitGC 禁用system.gc()方法。