tomcat非堆tomcat内存占用高的是什么内存

tomcat&jvm堆内存设置
http://blog.csdn.net/kthq/article/details/8618052
堆内存设置
JVM堆内存分为2块:Permanent&Space 和 Heap
Permanent 即&持久代(Permanent
Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。
Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old
Generation),New 即&年轻代(Young
Generation)。年老代和年轻代的划分对垃圾收集影响比较大。
所有新生成的对象首先都是放在年轻代。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代一般分3个区,1个Eden区,2个Survivor区(from
大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个),当一个Survivor区满时,此区的存活对象将被复制到另外一个Survivor区,当另一个Survivor区也满了的时候,从前一个Survivor区复制过来的并且此时还存活的对象,将可能被复制到年老代。
2个Survivor区是对称的,没有先后关系,所以同一个Survivor区中可能同时存在从Eden区复制过来对象,和从另一个Survivor区复制过来的对象;而复制到年老区的只有从另一个Survivor区过来的对象。而且,因为需要交换的原因,Survivor区至少有一个是空的。特殊的情况下,根据程序需要,Survivor区是可以配置为多个的(多于2个),这样可以增加对象在年轻代中的存在时间,减少被放到年老代的可能。
针对年轻代的垃圾回收即 Young GC。
在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象。
针对年老代的垃圾回收即 Full GC。
串行收集器
-XX:+UseSerialGC:设置串行收集器。
并行收集器(吞吐量优先)
-XX:+UseParallelGC:设置为并行收集器。此配置仅对年轻代有效。即年轻代使用并行收集,而年老代仍使用串行收集。
-XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时有多少个线程一起进行垃圾回收。此值建议配置与CPU数目相等。
-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0开始支持对年老代并行收集。
-XX:MaxGCPauseMillis=100:设置每次年轻代垃圾回收的最长时间(单位毫秒)。如果无法满足此时间,JVM会自动调整年轻代大小,以满足此时间。
-XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动调整年轻代Eden区大小和Survivor区大小的比例,以达成目标系统规定的最低响应时间或者收集频率等指标。此参数建议在使用并行收集器时,一直打开。
并发收集器(响应时间优先)
-XX:+UseConcMarkSweepGC:即CMS收集,设置年老代为并发收集。CMS收集是JDK1.4后期版本开始引入的新GC算法。它的主要适合场景是对响应时间的重要性需求大于对吞吐量的需求,能够承受垃圾回收线程和应用线程共享CPU资源,并且应用中存在比较多的长生命周期对象。CMS收集的目标是尽量减少应用的暂停时间,减少Full
GC发生的几率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代内存。
-XX:+UseParNewGC:设置年轻代为并发收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此参数。
-XX:CMSFullGCsBeforeCompaction=0:由于并发收集器不对内存空间进行压缩和整理,所以运行一段时间并行收集以后会产生内存碎片,内存使用效率降低。此参数设置运行0次Full
GC后对内存空间进行压缩和整理,即每次Full GC后立刻开始压缩和整理内存。
-XX:+UseCMSCompactAtFullCollection:打开内存空间的压缩和整理,在Full
GC后执行。可能会影响性能,但可以消除内存碎片。
-XX:+CMSIncrementalMode:设置为增量收集模式。一般适用于单CPU情况。
-XX:CMSInitiatingOccupancyFraction=70:表示年老代内存空间使用到70%时就开始执行CMS收集,以确保年老代有足够的空间接纳来自年轻代的对象,避免Full
GC的发生。
其它垃圾回收参数
-XX:+ScavengeBeforeFullGC:年轻代GC优于Full GC执行。
-XX:-DisableExplicitGC:不响应 System.gc() 代码。
-XX:+UseThreadPriorities:启用本地线程优先级API。即使&java.lang.Thread.setPriority()&生效,不启用则无效。
-XX:SoftRefLRUPolicyMSPerMB=0:软引用对象在最后一次被访问后能存活0毫秒(JVM默认为1000毫秒)。
-XX:TargetSurvivorRatio=90:允许90%的Survivor区被占用(JVM默认为50%)。提高对于Survivor区的使用率。
辅助信息参数设置
-XX:-CITime:打印消耗在JIT编译的时间。
-XX:ErrorFile=./hs_err_pid.log:保存错误日志或数据到指定文件中。
-XX:HeapDumpPath=./java_pid.hprof:指定Dump堆内存时的路径。
-XX:-HeapDumpOnOutOfMemoryError:当首次遭遇内存溢出时Dump出此时的堆内存。
-XX::出现致命ERROR后运行自定义命令。
-XX:OnOutOfMemoryError=";":当首次遭遇内存溢出时执行自定义命令。
-XX:-PrintClassHistogram:按下 Ctrl+Break 后打印堆内存中类实例的柱状信息,同JDK的
jmap -histo 命令。
-XX:-PrintConcurrentLocks:按下 Ctrl+Break 后打印线程栈中并发锁的相关信息,同JDK的
jstack -l 命令。
-XX:-PrintCompilation:当一个方法被编译时打印相关信息。
-XX:-PrintGC:每次GC时打印相关信息。
-XX:-PrintGCDetails:每次GC时打印详细信息。
-XX:-PrintGCTimeStamps:打印每次GC的时间戳。
-XX:-TraceClassLoading:跟踪类的加载信息。
-XX:-TraceClassLoadingPreorder:跟踪被引用到的所有类的加载信息。
-XX:-TraceClassResolution:跟踪常量池。
-XX:-TraceClassUnloading:跟踪类的卸载信息。
关于参数名称等
标准参数(-),所有JVM都必须支持这些参数的功能,而且向后兼容;例如:
-client——设置JVM使用Client模式,特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或开发调试;在32位环境下直接运行Java程序默认启用该模式。
-server——设置JVM使Server模式,特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境。在具有64位能力的JDK环境下默认启用该模式。
非标准参数(-X),默认JVM实现这些参数的功能,但是并不保证所有JVM实现都满足,且不保证向后兼容;
非稳定参数(-XX),此类参数各个JVM实现会有所不同,将来可能会不被支持,需要慎重使用;
JVM服务参数调优实战
大型网站服务器案例
承受海量访问的动态Web应用
默认情况下JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行智能判断。
1. 年老代溢出,表现为:java.lang.OutOfMemoryError:Javaheapspace
这是最常见的情况,产生的原因可能是:设置的内存参数Xmx过小或程序的内存泄露及使用不当问题。
例如循环上万次的字符串处理、创建上千万个对象、在一段代码内申请上百M甚至上G的内存。还有的时候虽然不会报内存溢出,却会使系统不间断的垃圾回收,也无法处理其它请求。这种情况下除了检查程序、打印堆内存等方法排查,还可以借助一些内存分析工具,比如MAT就很不错。
2. 持久代溢出,表现为:java.lang.OutOfMemoryError:PermGenspace
通常由于持久代设置过小,动态加载了大量Java类而导致溢出,解决办法唯有将参数 -XX:MaxPermSize
调大(一般256m能满足绝大多数应用程序需求)。将部分Java类放到容器共享区(例如Tomcat share
lib)去加载的办法也是一个思路,但前提是容器里部署了多个应用,且这些应用有大量的共享类库。
-Xmx3550m:设置JVM最大堆内存为3550M。
-Xms3550m:设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在左右。需要注意的是:当这个值被设置的较大(例如&2MB)时将会在很大程度上降低系统的性能。
-Xmn2g:设置年轻代大小为2G。在整个堆内存大小确定的情况下,增大年轻代将会减小年老代,反之亦然。此值关系到JVM垃圾回收,对系统性能影响较大,官方推荐配置为整个堆大小的3/8。
-XX:NewSize=1024m:设置年轻代初始值为1024M。
-XX:MaxNewSize=1024m:设置年轻代最大值为1024M。
-XX:PermSize=256m:设置持久代初始值为256M。
-XX:MaxPermSize=256m:设置持久代最大值为256M。
-XX:NewRatio=4:设置年轻代(包括1个Eden和2个Survivor区)与年老代的比值。表示年轻代比年老代为1:4。
-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的比值。表示2个Survivor区(JVM堆内存年轻代中默认有2个大小相等的Survivor区)与1个Eden区的比值为2:4,即1个Survivor区占整个年轻代大小的1/6。
-XX:MaxTenuringThreshold=7:表示一个对象如果在Survivor区(救助空间)移动了7次还没有被垃圾回收就进入年老代。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代,对于需要大量常驻内存的应用,这样做可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象在年轻代存活时间,增加对象在年轻代被垃圾回收的概率,减少Full
GC的频率,这样做可以在某种程度上提高服务稳定性。
-Xmn,-XX:NewSize/-XX:MaxNewSize,-XX:NewRatio
3组参数都可以影响年轻代的大小,混合使用的情况下,优先级是什么?
高优先级:-XX:NewSize/-XX:MaxNewSize&
中优先级:-Xmn(默认等效
&-Xmn=-XX:NewSize=-XX:MaxNewSize=?)&
低优先级:-XX:NewRatio&
推荐使用-Xmn参数,原因是这个参数简洁,相当于一次设定 NewSize/MaxNewSIze,而且两者相等,适用于生产环境。-Xmn
配合 -Xms/-Xmx,即可将堆内存布局完成。
-Xmn参数是在JDK 1.4 开始支持。
垃圾回收器选择
JVM给出了3种选择:串行收集器、并行收集器、并发收集器。串行收集器只适用于小数据量的情况,所以生产环境的选择主要是并行收集器和并发收集器。
JVM会试图为相关Java对象在年轻代的Eden区中初始化一块内存区域。
当Eden区空间足够时,内存申请结束。否则执行下一步。
JVM试图释放在Eden区中所有不活跃的对象(Young
GC)。释放后若Eden空间仍然不足以放入新对象,JVM则试图将部分Eden区中活跃对象放入Survivor区。
Survivor区被用来作为Eden区及年老代的中间交换区域。当年老代空间足够时,Survivor区中存活了一定次数的对象会被移到年老代。
当年老代空间不够时,JVM会在年老代进行完全的垃圾回收(Full GC)。
GC后,若Survivor区及年老代仍然无法存放从Eden区复制过来的对象,则会导致JVM无法在Eden区为新生成的对象申请内存,即出现“Out
of Memory”。
OOM(“Out of Memory”)异常一般主要有如下2种原因:
服务器配置:8 CPU, 8G MEM, JDK 1.6.X
参数方案:
-server -Xmx3550m -Xms3550m -Xmn1256m&-Xss128k
-XX:SurvivorRatio=6 -XX:MaxPermSize=256m
-XX:ParallelGCThreads=8&-XX:MaxTenuringThreshold=0&-XX:+UseConcMarkSweepGC
调优说明:
-Xmx 与 -Xms 相同以避免JVM反复重新申请内存。-Xmx
的大小约等于系统内存大小的一半,即充分利用系统资源,又给予系统安全运行的空间。
设置年轻代大小为1256MB。此值对系统性能影响较大,Sun官方推荐配置年轻代大小为整个堆的3/8。
-Xss128k 设置较小的线程栈以支持创建更多的线程,支持海量访问,并提升系统性能。
-XX:SurvivorRatio=6
设置年轻代中Eden区与Survivor区的比值。系统默认是8,根据经验设置为6,则2个Survivor区与1个Eden区的比值为2:6,一个Survivor区占整个年轻代的1/8。
-XX:ParallelGCThreads=8
配置并行收集器的线程数,即同时8个线程一起进行垃圾回收。此值一般配置为与CPU数目相等。
-XX:MaxTenuringThreshold=0
设置垃圾最大年龄(在年轻代的存活次数)。如果设置为0的话,则年轻代对象不经过Survivor区直接进入年老代。对于年老代比较多的应用,可以提高效率;如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率。根据被海量访问的动态Web应用之特点,其内存要么被缓存起来以减少直接访问DB,要么被快速回收以支持高并发海量请求,因此其内存对象在年轻代存活多次意义不大,可以直接进入年老代,根据实际应用效果,在这里设置此值为0。
-XX:+UseConcMarkSweepGC
设置年老代为并发收集。CMS(ConcMarkSweepGC)收集的目标是尽量减少应用的暂停时间,减少Full
GC发生的几率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代内存,适用于应用中存在比较多的长生命周期对象的情况。
内部集成构建服务器案例
高性能数据处理的工具应用
服务器配置:1 CPU, 4G MEM, JDK 1.6.X
结果是比较健康的。
-server -XX:PermSize=196m -XX:MaxPermSize=196m -Xmn320m -Xms768m
调优说明:
用于存放静态类型数据,如 Java Class, Method
等。持久代对垃圾回收没有显著影响。但是有些应用可能动态生成或调用一些Class,例如 Hibernate CGLib
等,在这种时候往往需要设置一个比较大的持久代空间来存放这些运行过程中动态增加的类型。
-XX:PermSize=196m -XX:MaxPermSize=196m
根据集成构建的特点,大规模的系统编译可能需要加载大量的Java类到内存中,所以预先分配好大量的持久代内存是高效和必要的。
-Xmn320m 遵循年轻代大小为整个堆的3/8原则。
-Xms768m -Xmx1024m 根据系统大致能够承受的堆内存大小设置即可。
在64位服务器上运行应用程序,构建执行时,用 jmap -heap 11540 命令观察JVM堆内存状况如下:
Attaching to process ID 11540, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.12-b01
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
& &MinHeapFreeRatio = 40
& &MaxHeapFreeRatio = 70
& &MaxHeapSize &
(1024.0MB)
& &NewSize &
& &MaxNewSize &
& &OldSize &
&= .1875MB)
& &NewRatio &
& &SurvivorRatio
& &PermSize &
& &MaxPermSize &
Heap Usage:
PS Young Generation
Eden Space:
& &capacity =
& &39.81% used
From Space:
& &capacity =
(32.5625MB)
& = .94MB)
& = .0625MB)
& &99.03% used
& &capacity =
& = 0 (0.0MB)
& &0.0% used
PS Old Generation
& &capacity =
& = .19MB)
& &9.184% used
PS Perm Generation
& &capacity =
& = .84MB)
(114.16MB)
& &41.285% used
参数方案:
所以,当一组对象生成时,内存申请过程如下:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Tomcat内存溢出的三种情况及解决办法分析;Tomcat内存溢出的原因;在生产环境中tomcat内存设置不好很容易出现内;这里根据平时遇到的情况和相关资料进行一个总结;3.OutOfMemoryError:unabl;对于前两种情况,在应用本身没有内存泄露的情况下可;最后一种可能需要调整操作系统和tomcatjvm;JVM堆的设置是指java程序运行过程中
Tomcat内存溢出的三种情况及解决办法分析
Tomcat内存溢出的原因
在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存溢出是不一样的,当然处理方式也不一样。
这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:
1.OutOfMemoryError: Java heap space
2.OutOfMemoryError: PermGen space
3.OutOfMemoryError: unable to create new native thread.
Tomcat内存溢出解决方案
对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat jvm参数来解决。(-Xms -Xmx -XX:PermSize -XX:MaxPermSize)
最后一种可能需要调整操作系统和tomcat jvm参数同时调整才能达到目的。
第一种:是堆溢出。
原因分析: JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。 在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
没有内存泄露的情况下,调整-Xms -Xmx参数可以解决。
-Xms:初始堆大小
-Xmx:最大堆大小
但堆的大小受下面三方面影响:
1.相关操作系统的数据模型(32-bt还是64-bit)限制;(32位系统下,一般限制在1.5G~2G;我在2003 server 系统下(物理内存:4G和6G,jdk:1.6)测试 1612M,64位操作系统对内存无限制。)
2.系统的可用虚拟内存限制;
3.系统的可用物理内存限制。
堆的大小可以使用 java -Xmx***M version 命令来测试。支持的话会出现jdk的版本号,不支持会报错。
-Xms -Xmx一般配置成一样比较好比如set JAVA_OPTS= -Xms1024m -Xmx1024m 其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可 进行设置 实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS=\-XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true \JAVA_OPTS=\-XX:MaxPermSize=256m -XX: NewSize=192m -XX:MaxNewSize=384m\CATALINA_OPTS=\-XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m\ 服务器为1G内存:JAVA_OPTS=\-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true \服务器为64位、2G内存: JAVA_OPTS='-server -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m' -------------------解决方案1:----------------------------- 前提:是执行startup.bat启动tomcat的方式 Linux服务器: 在/usr/local/apache-tomcat-5.5.23/bin 目录下的catalina.sh 添加:JAVA_OPTS='-Xms512m -Xmx1024m'
或者 JAVA_OPTS=\-XX:MaxNewSize=256m\或者 CATALINA_OPTS=\Windows服务器: 在catalina.bat最前面加入 set JAVA_OPTS=-Xms128m -Xmx350m 或者set CATALINA_OPTS=-Xmx300M -Xms256M (区别是一个直接设置jvm内存,另一个设置tomcat内存,CATALINA_OPTS似乎可以与JAVA_OPTS不加区别的使用) 基本参数说明 -client,-server 这两个参数用于设置虚拟机使用何种运行模式,一定要作为第一个参数,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能。 在windows上,缺省的虚拟机类型为client模式,如果要使用server模式,就需要在启动虚拟机时加-server参数,以获得更高性能,对服务器端应用,推荐采用server模式,尤其是多个CPU的系统。在Linux,Solaris上缺省采用server模式。
此外,在多cup下,建议用server模式 -Xms 设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为1024的整数倍并且要大于1MB,可用k(K)或m(M)为单位来设置较大的内存数。初始堆大小为2MB。加“m”说明是MB,否则就是KB了。 例如:-Xms6400K,-Xms256M -Xmx 设置虚拟机的最大可用大小,缺省单位为字节。该值必须为1024整数倍,并且要大于2MB。可用k(K)或m(M)为单位来设置较大的内存数。缺省堆最大值为64MB。 例如:-Xmx81920K,-Xmx80M 当应用程序申请了大内存运行时虚拟机抛出java.lang.OutOfMemoryError: Java heap space错误,就需要使用-Xmx设置较大的可用内存堆。 PermSize/MaxPermSize:定义Perm段的尺寸,即永久保存区域的大小,PermSize为JVM启动时初始化Perm的内存大小;MaxPermSize为最大可占用的Perm内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。 如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存. -------------------解决方案2:------------------------ 前提:是执行startup.bat启动tomcat的方式 手动设置Heap size Windows服务器: 修改TOMCAT_HOME/bin/catalina.bat,在“echo \E: $CATALINA_BASE\上面加入以下行: Java代码 set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
注:JAVA_OPTS是保留先前设置。 Linux服务器: 修改TOMCAT_HOME/bin/catalina.sh 在“echo \E: $CATALINA_BASE\上面加入以下行: JAVA_OPTS=\MaxNewSize=256m\ 注:$JAVA_OPTS是保留先前设置。 -------------------解决方案3:----------------------------- 前提:是执行windows的系统服务启动tomcat的方式 但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了, 就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了.. windows服务执行的是bin\\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置. 解决办法: 修改注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Apache Software Foundation\\Tomcat Service Manager\\Tomcat5\\Parameters\\JavaOptions 原值为 -Dcatalina.home=\-Djava.endorsed.dirs=\-Xrs 加入 -Xms300m -Xmx350m
重起tomcat服务,设置生效 -------------------解决方案4:----------------------------- 前提:是执行windows的系统服务启动tomcat的方式 在安装tomcat时若有勾选\则安装完成后在安装目录的\目录里会有一个tomcat.exe的档案 先把tomcat的服务停掉 在命令列模式下(运行里输入CMD) 将目录切换到tomcat的bin目录 用下面的命令把服务移除
tomcat -uninstall \
接下来,写个批处理。 内容如下 set SERVICENAME=Apache Tomcat 4.1 set CATALINA_HOME=E:\\Tomcat 4.1.24 set CLASSPATH=D:\\j2sdk1.4.1_01\\lib set JAVACLASSPATH=%CLASSPATH% set JAVACLASSPATH=%JAVACLASSPATH%;?TALINA_HOME%\\bin\\bootstrap.jar set JAVACLASSPATH=%JAVACLASSPATH%;?TALINA_HOME%\\common\\lib\\servle三亿文库包含各类专业文献、行业资料、中学教育、外语学习资料、应用写作文书、生活休闲娱乐、各类资格考试、幼儿教育、小学教育、Tomcat内存溢出的三种情况及解决办法40等内容。 
 一. Tomcat 内存溢出的三种情况及解决办法分析 Tomcat 内存溢出的原因 在生产环境中 tomcat 内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式...  Tomcat内存溢出解决办法_计算机软件及应用_IT/计算机_专业资料。Tomcat内存溢出解决...所以说设置 VM 参数导致程序无法启动主要有以下 几种原因: 1) 参数中-Xms 的...  Tomcat内存溢出的三种情况及解决办法分析,供大家学习研究Tomcat内存溢出的三种情况及解决办法分析,供大家学习研究隐藏&& Tomcat 内存溢出的三种情况及解决办法分析 Tomcat...  tomcat服务内存溢出的解决方案_计算机软件及应用_IT/计算机_专业资料。一个tomcat下放置两个项目报内存溢出的解决方案 错误信息:启动 tomcat 服务时,内存溢出 解决...  Tomcat内存溢出解决方案_计算机软件及应用_IT/计算机_专业资料。Tomcat内存溢出解决方案1、如果是:java.lang.OutOfMemoryError: Java heap space 修改 TOMCAT_HOME/bi...  Tomcat性能调优方案 4页 免费 Tomcat内存溢出的三种情... 13页 免费T​o​m​c​a​t​内​存​溢​出​解​决​方​法 暂无评价|0...  解决tomcat内存溢出问题_IT/计算机_专业资料。TOMCAT 出错:java.lang.OutOfMemory...这种方式的优点是管理内存的精度很高,但是效率较低。 另外一种常用的内存管理...  tomcat内存溢出_计算机软件及应用_IT/计算机_专业资料。tomcat 内存溢出 2.报错...4.解决方法 1:手动设置 MaxPermSize 大小, 如果是 linux 系统, 修改 TOMCAT_...Tomcat寮傛?Servlet鍗犵敤鍐呭瓨闂?? - Java - ITeye璁哄潧
Tomcat寮傛?Servlet鍗犵敤鍐呭瓨闂??
閿佸畾鑰佸笘瀛}

我要回帖

更多关于 tomcat占用内存过高 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信