java内存溢出的解决办法
来源:互联网 发布:淘宝评价语50字 编辑:程序博客网 时间:2024/05/16 02:11
1 、 tomcat 参数配置详解:
Windows环境下修改“%TOMCAT_HOME%/bin/catalina.bat”文件,在文件开头增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
需要把这个两个参数值调大。例如:
JAVA_OPTS='-Xms256m –Xmx768m'
表示初始化内存为256MB,可以使用的最大内存为768MB。
【可以使用的最大内存】:建议设为物理内存的50%~80%。不可超过物理内存。
建议把内存的最高值跟最低值的差值缩小,不然会浪费很多内存的,最低值加大,最高值可以随便设,但是要根据实际的物理内存,如果内存设置太大了,比如设置了758M最大内存,但如果没有768M可用内存,Tomcat就不能启动,还有可能存在内存被系统回收,终止进程的情况。
或者将Xms和Xmx两个值设置大小为一样的,这样可以避免在程序运行完毕内存GC时还需要重新调整内存,提高效率。
以下为XXX正式服务器中设置的内存值大小,供类似生产设备设置参考
Windows Server 2003,内存8G
2、 在Linux环境下的Tomcat(免安装版本)
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="$JAVA_OPTS -server -Xms256m –Xmx768m -XX:PermSize=256M -XX:MaxPermSize=768m"
$JAVA_OPTS是保留先前设置。
3、 在Windows环境下的Tomcat(免安装版本)
64位机器:
如果已经注册到windows服务,并且服务名称非tomcat6,需要进行移除服务,重新命名
进入apache-tomcat-6.0.29/bin目录,双击tomcat6w.exe ,按红色标注位置进行设置
-XX:PermSize=256M
-XX:MaxPermSize=768M
32位机器
如果Tomcat 已经注册成了windows服务,以服务方式启动的:
修改注册表中的JvmMs和JvmMx键值。
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\....\Parameters\Java,
右侧的JvmMs和JvmMx(十进制参考值JvmMs:256,JvmMx:768)
4、 安装版
前几种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等),但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:
打开Tomcat配置,点击Java选项卡,然后将会发现其中有这么两项:Initial memory pool和Maximum memory pool.
Initial memory pool这个就是初始化设置的内存的大小。
Maximum memorypool这个是最大内存的大小
设置完了就按确定,重启服务。
如何查看内存设置是否生效
1 、 新增tomcat用户
打开tomcat-user.xml文件,增加如下内容
<role rolename="manager"/>
<user username="tomcat" password="123" roles="manager"/>
如图所示:
2、 查看内存设置是否生效
进入http://localhost:8080/manager/status
用户名:tomcat 密码:123
测试机器,设置的初始化内存为88M,最大内存为188M,设置完成之后,可以看到如下近似数:
(供参考:本机使用apache-tomcat-6.0.29进行测试,如果服务未能install进windows服务,则无法使用用户名、密码登陆,尚未测试出原因)
- java内存溢出的解决办法
- Java内存溢出解决办法
- 关于JAVA中内存溢出的解决办法
- 关于JAVA中内存溢出的解决办法
- JAVA内存溢出(OutOfMemoryError)的解决办法
- 关于Java中内存溢出的解决办法
- 关于JAVA中内存溢出的解决办法
- 关于JAVA中内存溢出的解决办法
- 关于JAVA中内存溢出的解决办法
- 关于JAVA中内存溢出的解决办法
- 内存溢出的解决办法
- java 内存溢出 及时解决办法
- Java内存溢出及解决办法
- 遇到内存溢出的解决办法
- 内存溢出的解决办法 Android
- 内存溢出的解决办法 Android
- Android-内存溢出的解决办法
- Eclipse内存溢出的解决办法
- Redirect the stream buffer of cout to a file with ios::rdbuf()
- 运算放大器技术指标
- jasperreports+Flex报表方案新思路
- 使用bcp工具分离boost库
- eclipse出现无法找到action或namespace的解决办法
- java内存溢出的解决办法
- wxWidgets乱码问题解决
- SSL Client Auth in Rails
- 使用gdb调试多线程程序总结
- 浅谈WM(一)
- ffmpeg configure 参数翻译
- ffmpeg_configure
- jboss性能优化
- windows下Unicode与ANSI的相互转换