-
chenl 数据达人Lv4
发表于2019-1-14 16:11
悬赏1
已解决
楼主
如图:系统提示可用内存很低,目前服务器硬件内存是8G,i和bi部署在一个tomcat下,请问怎么设置内存比较合适?
最佳答案
chenl 发表于 2019-1-14 16:19
哪里设置我知道,我是问怎么配置比较合适,这个内存值是设置越大越好,还是有其他合理值 ...
内存设置不好会导致内存溢出
常见的Java内存溢出有以下两种:
1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
2. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出。
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。
为什么会内存溢出,这是由于这块内存主要是被JVM存放Class和Meta信息的,Class在被Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,sun的 GC不会在主程序运行期对PermGen space进行清理,所以如果你的APP会载入很多CLASS的话,就很可能出现PermGen space溢出。
解决方法: 手动设置MaxPermSize大小
6个回答
本帖最后由 缱绻 于 2019-1-14 16:19 编辑
示例,操作系统Windows,在startup.bat中添加set JAVA_OPTS=-Xms512m -Xmx2048m -XX: PermSize=512M -XX:MaxPermSize=512m
其中 -Xmx2048m 中的2048即是内存值
chenl 发表于 2019-1-14 16:19
哪里设置我知道,我是问怎么配置比较合适,这个内存值是设置越大越好,还是有其他合理值 ...
内存设置不好会导致内存溢出
常见的Java内存溢出有以下两种:
1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
2. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出。
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。
为什么会内存溢出,这是由于这块内存主要是被JVM存放Class和Meta信息的,Class在被Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,sun的 GC不会在主程序运行期对PermGen space进行清理,所以如果你的APP会载入很多CLASS的话,就很可能出现PermGen space溢出。
解决方法: 手动设置MaxPermSize大小