`
hanyi366
  • 浏览: 285450 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

增大tomcat内存2

 
阅读更多

首先检查程序有没有限入死循环

这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出现这样的的问题以后,引发了其他的问题。在网上一查可能是JAVA的堆栈设置太小的原因。
跟据网上的答案大致有这两种解决方法:
1、设置环境变量

解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.sh
set JAVA_OPTS= -Xms32m -Xmx512m
可以根据自己机器的内存进行更改。

2、java -Xms32m -Xmx800m className
就是在执行JAVA类文件时加上这个参数,其中className是需要执行的确类名。(包括包名)
这个解决问题了。而且执行的速度比没有设置的时候快很多。

如果在测试的时候可能会用Eclispe 这时候就需要在Eclipse ->run -arguments 中的VM arguments 中输入-Xms32m -Xmx800m这个参数就可以了。

后来在Eclilpse中修改了启动参数,在VM arguments 加入了-Xms32m -Xmx800m,问题解决。

一、java.lang.OutOfMemoryError: PermGen space

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小

修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

二、java.lang.OutOfMemoryError: Java heap space
Heap size 设置
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值。
解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"

三、实例,以下给出1G内存环境下java jvm 的参数设置参考:

JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

很大的web工程,用tomcat默认分配的内存空间无法启动,如果不是在myeclipse中启动tomcat可以对tomcat这样设置:

TOMCAT_HOME/bin/catalina.bat 中添加这样一句话:

 

          set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m

如果要在myeclipse中启动,上述的修改就不起作用了,可如下设置:

Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的

Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m

以上是转贴,但本人遇见的问题是:在myeclipse中启动Tomcat时,提示"ava.lang.OutOfMemoryError: Java heap space",解决办法就是:

Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的

Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m

 

 

Tomcat6.x性能参数调整
1.软硬件环境:
应用服务器:64位Windows2003 Server 2cpu 4GB RAM
JDK版本:64位1.5.22
Tomcat版本:6.0.16

2.startup.bat文件中加入设置内存参数:
Java代码
SETCATALINA_OPTS=-Xms2048m-Xmx2048m-XX:PermSize=128m-XX:MaxPermSize=256m

SET CATALINA_OPTS=-Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m


3.设置线程池及网络连接
Java代码
<!--线程池-->
<Executorname="tomcatThreadPool"namePrefix="catalina-exec-"
maxThreads="300"minSpareThreads="100"/>
<!--网络连接-->
<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9443"
executor="tomcatThreadPool"
compression="on"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css"/>

    <!--线程池-->    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"         maxThreads="1500" minSpareThreads="100"/>    <!--网络连接-->    <Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="9443"                executor="tomcatThreadPool"               compression="on"               noCompressionUserAgents="gozilla, traviata"           compressableMimeType="text/html,text/xml,text/javascript,text/css" />


4.参数详细解释:
-Xms[初始化堆内存大小]
-Xmx[可以使用的最大堆内存]
PermSize[永久生成对象如:class对象、方法对象这些可反射(reflective)对象所分配的初始内存,这些内存不包括在Heap(堆内存)区之中]
MaxPermSize[永久生成对象所使用的最大内存]
maxThreads[最大线程数,受限于操作系统支持的网络连接数,一般windows为2000左右,linux为1000左右]
minSpareThreads[最小空闲线程,线程池初始线程数]
maxSpareThreads[最大空闲线程,一旦空闲线程数超出该数字,tomcat会自动关闭不再需要的线程]
connectionTimeout[网络连接超时时间(毫秒),0为永不超时]
compression[压缩传输,能够些许提高服务器与客户端的网络传输效率]

5.以上参数调整信息仅供参考,实际项目中应根据系统的实际运行情况做调整
可以使用tomcat自带的监控工具进行服务器性能监控,但是首先需要在conf/tomcat-users.xml 文件中做如下配置:
Java代码
<rolerolename="manager"/>
<userusername="admin"password="admin"roles="manager"/>

分享到:
评论

相关推荐

    tomcat内存配置

    tomcat内存配置

    扩大Tomcat内存

    所以此时提供另外一种增大Tomcat内存的方法:打开tomcat目录下\bin\tomcat7w.exe,点击Java选项卡,然后将会发现其中有这么两项:Initial memory pool和Maximum memory pool,其中Initial memory pool这个就是初始化...

    Tomcat内存溢出三种情况及解决办法

    Tomcat内存溢出三种情况及解决办法,不同的异常采用不同的方式解决,不能盲目的增加内存就可以了。

    增加tomcat内存

    tomcat默认的使用内存大小为64M,在某些应用中可能不够,所以需要自己手动更改内存,配置tomcat文件增加内存

    Tomcat加载到虚拟内存、端口设置、内存加大

    文档是自己在使用过程中总结的,有什么不足之处,还请谅解。

    Tomcat虚拟内存

    JAVA虚拟内存设置,包括非安装版和安装版

    Linux与Windows下tomcat内存设置

     以下是自己设置的另外增加一个setenv.sh文件来设置tomcat内存,给文件加上执行权限  #vi /opt/app/tomcat6/bin/setenv.shexport JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=128m ...

    Tomcat和IIS的配合

    Windows平台下最常用的Web服务器无疑是IIS(包括PWS),对于IIS,Tomcat也提供了配合 工作的方法,使用这种方法,可以为本来不具有Java Servlet和JSP功能的IIS增加处理JSP和Java

    Tomcat配置使用文档

    启动内存参数的配置及含义 Tomcat的简单配置介绍 增加虚拟目录及相关文件说明 Tomcat多虚拟主机的配置方法 Tomcat集群配置(负载均衡、Session共享) Tomcat安全SSL的配置使用 Tomcat性能调优 Tomcat日志简介 安全配置...

    Tomcat-启动参数设置

    windows及linux环境下,tomcat启动参数的设置。在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数...

    nginx+tomcat在windows下做负载均衡

    由于Tomcat自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便需要重新启动Tomcat以释放占用的内存,这样做便会阻断网站运行。 所以对Tomcat做负载均衡便很...

    Nginx+Tomcat在Windows下做负载均衡

    Tomcat 服务器作为一个 ...由于 Tomcat 自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便需要重新启动 Tomcat 以释放占用的内存,这样做便会阻断网站运行。

    tomcat 热部署 hot deploy Jrebel 加大JVM内存

    NULL 博文链接:https://vernonchen163.iteye.com/blog/1965515

    tomcat6、7、8、9, maven3.5

    版本3.2自3.1以来增加了几个新功能; 主要的努力是重构内部以提高性能和稳定性。3.2.1版本,如3.1.1,是一个安全补丁。版本3.2.2修复了大量的错误和所有已知的规范合规性问题。版本3.2.3是一个安全更新,关闭一个严重...

    项目内存溢出

    项目发布启动后内存溢出,在免安装版tomcat包下,catalina.bat文件中的配置。

    tomcat-7.0.52 x64免安装版

    启动内存参数的配置 tomcat/bin/catalina.bat 如果是linux 就是 catalina.sh 在rem 的后面增加如下参数 set JAVA_OPTS= -Xms256m -Xmx256m -XX:MaxPermSize=64m 修改Tomcat的JDK目录 打开tomcat/bin/catalina....

    Tomcat+Mysql高并发配置优化讲解

    将java变成server模式,增大jvm的内存,在文件开始位置增加 setJAVA_OPTS=-server -Xms1024m -Xmx2048m -Xss512K -XX:PermSize=128m-XX:MaxPermSize=256m setCATALINA_OPTS=-server -Xms512m -Xmx512m 如下图: ...

    物流管理系统 java+sqlserver+tomcat毕业设计

    针对物流的特点和要求,软件需要对物流过程的全程做了业务整合,软件对物流全程进行过程控制,并增加了报表系统,建立了客户信用档案。在报表数据库的连接方面,建立了临时的数据库,使报表数据主要在数据库中存放,...

    详解Windows下调整Tomcat启动参数的实现方法

    我们可以通过调整Java虚拟机的启动参数来增加Tomcat可使用的内存。  下面就是众所周知的两个参数 -Xms&lt;size&gt; JVM初始化堆的大小 -Xmx&lt;size&gt; JVM堆的最大值  比如,我想设置初始内存大小为128M,最多占用1G,...

    Tomcat源码研究

    2 修改Tomcat的JDK目录  打开tomcat/bin/catalina.bat 在最后一个rem后面增加 set JAVA_HOME=C:\Program Files\Java\jdk1.6.0 3 增加虚拟目录  /tomcat/conf/server.xml 第一行是以前默认存在的,第二行是新增的 ...

Global site tag (gtag.js) - Google Analytics