TOMCAT内存溢出之解决方法

摘要:
问题分析:TOMCAT内存溢出导致问题的主要原因是JVM的虚拟内存默认为128M。当超过此值时,先前占用的内存将被释放,导致TCP/IP数据包丢失和HTTP500错误的错觉。解决方案是增加TOMCAT的可用内存,并增加程序中的内存使用。2) 。再次在TOMCAT/BIN目录下找到启动程序Bat。双击它将其打开。您会发现当前的Windows内存使用量将增加近800M。3) ,程序执行。因为TOMCAT会重新编译程序,所以第一次会很慢。

TOMCAT内存溢出之解决方法 - J2EE剑侠行 - BlogJava

TOMCAT内存溢出之解决方法

问题表现:

当用户执行一个大数据的应用时(净字节码量约为5M)时,系统会提示出错:

前台错误为:HTTPStatus 500-Dispatch[EAITool] to method listCurTree retrun an
exception

(以下省略)

………………………………………………………

………………………………………………………

后台错误为:java.lang.OutOfMemoryError:unabletocreatenewnativethread
atjava.lang.Thread.start(NativeMethod)
atorg.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的内存占用,而我们扩大了近800MJAVA内存使用,这对于业务本身来说是足够了。所以你们不用担心大数据量的传递问题。

基于JAVA虚拟机的原理,JAVA自动有垃圾回收机制,也就是在你对一些内存长时间不使用时(近2分钟,取决于使用频度和优先级等),就会自动垃圾回收,从而释放不用的内存占用。

免责声明:文章转载自《TOMCAT内存溢出之解决方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用UltraISO工具制作U盘启动光盘zabbix监控linux磁盘IO性能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

内存泄漏(memory leak)和内存溢出

1. 什么是内存泄漏(memory leak)? 指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 2. 两种类型的内存泄漏: 堆内存泄漏(Heap leak)。对内存指的是程序运行中根据需要分配通过malloc,reall...

使用jvisualvm排查一次内存溢出(OOM)过程

内存溢出在开发中或者线上出现的概率很高,造成的直接原因就是系统运行缓慢,或者直接宕机了。 小编在这里模拟下内存溢出的情况以防患于线上出现内存溢出要如何排查问题。题外话(线上出问题你需要生成一个快照(hprof文件),在本地查看问题),当然了还有其他工具调试如阿里的Arthas、还有MAT。我这里只演示jvisualvm。 我使用的jdk版本是jdk1.8....

基于node的前端项目编译时(react vue 打包)内存溢出问题

前段时间公司有个基于 vue 的项目在运行 npm run build 的时候会报内存溢出,今天在某个技术流交群也有位小伙伴基于 angular 的项目也出现了这个问题,所以查了一些相关的资料总结了一下,下面会详细说明前端三大框架编译时遇到这个问题具体怎么解决。首先看我模拟出的报错内容 具体截图如下 里面有句关键的话, CALL_AND_RETRY_LA...

服务器内存溢出问题

系统测试时,导出、下载功能,偶尔会出现“out of memory”(内存溢出)问题。 内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 引起内存溢出的原因有很多种,常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得...

位图引起的内存溢出OutOfMemory解决方案

一、问题描述:Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由Android4.0变成了Android4.1后,拍照出现了OutOfMemory异常,程序中断退出。如何解决这个问题呢? 二、先看看我们之前所写的代码 1) 调用系统相机(没有怀疑这里出错,代码略) 2)显示图片 mImageV...

POI导出excel模板三种方式

POI简介 POI是Apache软件基金会用java编写的免费开源的跨平台的Java API,提供API给java程序对Microsoft Office格式档案读和写的功能,一般用来操作Excel文件。用javaPOI导出Excel时,需要考虑Excel版本和数据量的问题。 JavaPOI导出Excel有三种形式: (1) 第一种HSSFWorkbook...