beloveddarling 2011-02-24
1、上传文件时,发生OutOfMemoryError错误,文件大小是135M,从网上查到,jvm虚拟机的默认Heap大小是64M,可能就是因为这个原因出错。
解决办法:
a.Linux下,在$TOMCAT_HOME/bin/catalina.sh文件中,在
# JAVA_OPTS (Optional) Java runtime options used when the "start",# "stop", or "run" command is executed.
下加入一行:
export JAVA_OPTS="-server -Xms512m -Xmx1024m"
问题解决(测试通过)。
b.Windows下,修改%Tomcat_Home/bin/catalina.bat文件,在
rem Guess CATALINA_HOME if not defined
下加入:
set JAVA_OPTS=-Xms64m -Xmx256m
不过修改之后,问题还是存在,不知道是什么原因,以后再研究吧。
PS.有关此问题的相关知识:
Heap size
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heapsize的值,
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn-Xms-Xmx等选项可
进行设置。Heapsize的大小是YoungGeneration和TenuredGeneraion之和。
提示:在JVM中如果98%的时间是用于GC且可用的Heapsize不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。http://blog.csdn.net/jxzxm1_2/archive/2008/05/31/2499751.aspx