第1页共8页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共8页apache服务器出现内存溢出的解决方法2011-10-0814:26Tomcat内存溢出的原因在生产环境中tomcat内存设置不好很容易出现内存溢出
造成内存溢出是不一样的,当然处理方式也不一样
这里根据平时遇到的情况和相关资料进行一个总结
常见的一般会有下面三种情况:1
OutOfMemoryError:Javaheapspace2
OutOfMemoryError:PermGenspace3
OutOfMemoryError:unabletocreatenewnativethread
Tomcat内存溢出解决方案对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcatjvm参数来解决
(-Xms-Xmx-XX:PermSize-XX:MaxPermSize)最后一种可能需要调整操作系统和tomcatjvm参数同时调整才能达到目的
第一种:是堆溢出
原因分析:JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置
JVM在启动的时候会自动设置Heapsize的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4
可以利用JVM提供的-Xmn-Xms-Xmx等选项可进行设置
Heapsize的大小是YoungGeneration和TenuredGeneraion之和
在JVM中如果98%的时间是用于GC且可用的Heapsize不足2%的时候将抛出此异常信息
HeapSize最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值
没有内存泄露的情况下,调整-Xms-Xmx参数可以解决
-Xms:初始堆大小-Xmx:最大堆大小但堆的大小受下面三方面影响:1