JVM内存参数设置

来源:互联网 发布:淘宝水果店铺名字 编辑:程序博客网 时间:2024/06/05 04:53

永久存储区相关参数:

-XX:PermSize  应用服务器启动时,永久存储区的初始化内存大小;默认64M。

-XX:MaxPermSize  应用运行中,永久存储区域的最大值。为了不消耗扩大JVM永久存储区分配的开销,将此参数和-XX:PermSize这两个值设为相等。


堆空间相关参数:

-Xms 启动应用时,JVM堆空间的初始值大小;默认值为物理内存的1/64,但小于1G。

-Xmx 应用运行中,JVM堆空间的最大值。为了不消耗扩大JVM堆空间分配的开销,将此参数设置为和-Xms相等,考虑到需要开线程,将此值设置为总内存的80%。默认值是物理内存的1/4,但小于1G。

-Xmn 此参数硬性规定堆空间的新生代空间大小,推荐将此值设置为堆空间大小的1/4。


上面所列出的JVM参数关系到系统的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx,-Xmn这5个参数直接影响到系统的性能,系统是否会内存溢出。


如果程序出现:java.lang.OutOfMemoryError:Java Permanent Space,此乃永久存储区设置太小,不能满足系统的需求,此时只需要调整-XX:PermSize和-XX:MaxPermSize大小即可。

如果程序出现:java.lang.OutOfMemoryError:Java heap Space,此乃堆空间不足,只需要调整-Xms和-Xmn大小即可


给大家提供一个内存监控工具:

下载地址


下载完成,配置环境变量:

配置本地的环境变量加入JVMSTAT_JAVA_HOME,配置为jdk安装的路径


配完后,win+R,打开dos命令窗口,输入jps,查看所有java应用程序列表,第一列为pid,第二列为应用名字。



然后:

就会出现当前应用的内存分布情况(实时动态刷新):

然后,跑应用,如果哪里报内存溢出了,自己分析。

原创粉丝点击