一:参数含义
1. -Xmx
指定 jvm 的最大内存大 , 如 :-Xmx=2048M(根据设备物理内存以及实际情况设定,建议为物理内存的80%)
2. -Xms
指定 jvm 的初始内存大小 , 如 :-Xms=2048M, 高并发应用, 建议和-Xmx一样, 防止因为内存收缩/突然增大带来的性能影响.
3: -Xmn
指定 jvm 中 New Generation (堆空间的新生代空间)的大小 , 如 :-Xmn=256m。 这个参数很影响性能, 如果你的程序需要比较多的临时内存, 建议设置到512M, 如果用的少, 尽量降低这个数值, 一般来说128/256足以使用了。
4: -Xss
指定线程桟大小 , 如 :-Xss=128k, 一般来说,webx框架下的应用需要256K。 如果程序中有大规模的递归行为,请考虑设置到512K/1M。 这个需要全面的测试才能知道。 不过,256K已经很大了。 这个参数对性能的影响比较大的。.
5.-XX:MatespaceSize(java8)和-XX:MatespaceSize(java8)
JVM加载类的时候,需要记录类的元数据,这些数据会保存在一个单独的内存区域内,
在Java 7里,这个空间被称为永久代(Permgen),
在Java 8里,使用元空间(Metaspace)代替了永久代。
由于调整元空间的大小需要Full GC,这是非常昂贵的操作,如果应用在启动的时候发生大量Full GC,通常都是由于永久代或元空间发生了大小调整,
基于这种情况一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值要大,
对于8G物理内存的机器来说,一般我会将这两个值都设置为512M。
6.-XX:PermSize (java7,java8移除)
指定 jvm 中 Perm Generation (永久存储区)的最小值 , 如 :-XX:PermSize=32m。 这个参数需要看你的实际情况。可以通过jmap 命令看看到底需要多少.
7.-XX:MaxPermSize(java7,java8移除)
指定 Perm Generation 的最大值 , 如 :-XX:MaxPermSize=64m
二:参数设置

- [2] : 在系统变量中,新建变量JAVA_OPTS,值设置为
-Xms1024M 初始内存
-Xmx2048M 最大内存
-XX:MaxNewSize=256M 年轻代最大值
(具体根据实际情况进行配置)

- [3]保存设置后,每次启动服务器都会按这个配置初始化Java虚拟机内存.