以下以操作系统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()方法。