TOMCAT内存溢出之解决方法
2012-06-25 11:14
309 查看
TOMCAT内存溢出之解决方法 - J2EE剑侠行 - BlogJava
当用户执行一个大数据的应用时(净字节码量约为5M)时,系统会提示出错:
前台错误为:HTTP Status 500-Dispatch[EAITool] to method listCurTree retrun an
exception
(以下省略)
………………………………………………………
………………………………………………………
后台错误为:java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start(Native Method)
at org.apache.catalina.loader.WebappLoader.notifyContext(WebappLoader.ja
va:847)
(以下省略)
………………………………………………………
………………………………………………………
问题分析:
由于TOMCAT内存溢出而引发的问题,主要原因是JVM的虚拟内存默认为128M,当超过这个值时就把先前占用的内存释放,而导致好象TCP/IP丢包的假象,出现HTTP500的错误。
解决方法主要是加大TOMCAT可利用内存,并在程序当中加大内存使用。
解决方法:
方法:加大TOMCAT可利用内存:
在TOMCAT的目录下,也就是在TOMCAT41/bin/catalina.bat文件最前面加入
set
JAVA_OPTS=-Xms800m -Xmx800m
表现效果是当你启动TOMCAT时,系统内存会增加近800M使用
操作方法:
1)、先关掉WINDOWS服务当中的TOMCAT4服务。
2)、再找到TOMCAT/BIN目录下startup.bat,双击打开它,你会发现现WINDOWS内存占用会增加近800M。
3)、执行程序,因为是TOMCAT重新编译程序,所以第一次会比较慢。
结论:
经过测试,我们得出如下数据:
当系统传输约2000条数据时,大约近12M的净数据(不压缩时),系统辅助运行的内存大约占用150M左右的空间,也就是近200M的内存占用,而我们扩大了近800M的JAVA内存使用,这对于业务本身来说是足够了。所以你们不用担心大数据量的传递问题。
基于JAVA虚拟机的原理,JAVA自动有垃圾回收机制,也就是在你对一些内存长时间不使用时(近2分钟,取决于使用频度和优先级等),就会自动垃圾回收,从而释放不用的内存占用。
TOMCAT内存溢出之解决方法
问题表现:当用户执行一个大数据的应用时(净字节码量约为5M)时,系统会提示出错:
前台错误为:HTTP Status 500-Dispatch[EAITool] to method listCurTree retrun an
exception
(以下省略)
………………………………………………………
………………………………………………………
后台错误为:java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start(Native Method)
at org.apache.catalina.loader.WebappLoader.notifyContext(WebappLoader.ja
va:847)
(以下省略)
………………………………………………………
………………………………………………………
问题分析:
由于TOMCAT内存溢出而引发的问题,主要原因是JVM的虚拟内存默认为128M,当超过这个值时就把先前占用的内存释放,而导致好象TCP/IP丢包的假象,出现HTTP500的错误。
解决方法主要是加大TOMCAT可利用内存,并在程序当中加大内存使用。
解决方法:
方法:加大TOMCAT可利用内存:
在TOMCAT的目录下,也就是在TOMCAT41/bin/catalina.bat文件最前面加入
set
JAVA_OPTS=-Xms800m -Xmx800m
表现效果是当你启动TOMCAT时,系统内存会增加近800M使用
操作方法:
1)、先关掉WINDOWS服务当中的TOMCAT4服务。
2)、再找到TOMCAT/BIN目录下startup.bat,双击打开它,你会发现现WINDOWS内存占用会增加近800M。
3)、执行程序,因为是TOMCAT重新编译程序,所以第一次会比较慢。
结论:
经过测试,我们得出如下数据:
当系统传输约2000条数据时,大约近12M的净数据(不压缩时),系统辅助运行的内存大约占用150M左右的空间,也就是近200M的内存占用,而我们扩大了近800M的JAVA内存使用,这对于业务本身来说是足够了。所以你们不用担心大数据量的传递问题。
基于JAVA虚拟机的原理,JAVA自动有垃圾回收机制,也就是在你对一些内存长时间不使用时(近2分钟,取决于使用频度和优先级等),就会自动垃圾回收,从而释放不用的内存占用。
相关文章推荐
- Tomcat内存溢出解决方法
- [ Tomcat ] Eclispe下 Tomcat内存溢出解决方法
- Tomcat部署web工程内存溢出解决方法
- Tomcat 内存溢出 解决方法
- Tomcat内存溢出解决方法
- tomcat的内存溢出解决方法
- TOMCAT内存溢出之解决方法
- MyEclipse 2015 运行tomcat 内存溢出的解决方法
- eclipse+tomcat开发,debug启动导致内存溢出解决方法
- 使用Eclipse里的Tomcat经常内存溢出的解决方法
- TOMCAT内存溢出之解决方法
- tomcat内存溢出解决方法
- tomcat permgen space 内存溢出解决方法
- tomcat内存溢出解决方法
- MyEclipse 2015 运行tomcat 内存溢出的解决方法
- tomcat:内存溢出的解决方法!
- MyEclipse 2013 运行tomcat 内存溢出的解决方法
- TOMCAT内存溢出之解决方法
- 同一台机器上多个tomcat启动造成的内存溢出问题的解决方法。
- 绿色版tomcat 放到windows服务里,运行时发生内存溢出错误的解决方法