tomcat怎么配置内存permsize配置 size

在myeclipse中出现:java.lang.OutOfMemoryError: Java heap space 或着java.lang.OutOfMemoryError: PermGen space 这两个错误,原因是tomcat 或着mycelispe没有设置好
如是单独启动tomcat出现这个问题,应该在如apache-tomcat-5.5.25\bin\catalina.bat文件中
添加set CATALINA_OPTS=-Xms512m -Xmx1048m -XX:PermSize=128m& -XX:MaxPermSize=400m
根据自己机器的实际情况决定,默认MaxPermSize为128,这个地方设置的也不能太大的,如果太大的话,运行startup.bat将会一闪而过,启动不了tomcat
如果是在myeclipse中启动出现这个问题,要是myeclipse中设置tomcat的启动参数
路径:Myeclipse-&preferences-&myeclipse-&servers-&tomcat-&tomcat×.×-&下,
-Xms1024M&& -Xmx1024M -XX:MaxPermSize=400M不设置就算tomcat中设置了,也还是按默认的128M运行,这里的设置也要根据自己的机器的实际情况来定。
浏览 39362
浏览: 985304 次
来自: 上海
有没有测试代码呢
没加 -b,是随机出多少个密码偿试。?
还有C1Calendar,也推荐试试
如何计算当天最大时间 有什么方法
很好很强打
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)tomcat怎么配置内存perm size_百度知道
tomcat怎么配置内存perm size
我有更好的答案
bin&#47,在前面加入JAVA_OPTS=&-XX:PermSize=64M -XX;catalina.sh:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m最大堆内存是1024m,实施时:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai&windows修改TOMCAT_HOME/bin&#47,对于现在的硬件还是偏低;catalina.bat,在前面加入set JAVA_OPTS=-XXtomcat内存优化linux修改TOMCAT_HOME&#47
采纳率:77%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64)
TOMCAT_HOME/bin/catalina.sh
添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"
问题解决(可能为调用JAR包过多原因)下面是网上看到一些设置
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。具体数值可跟据实际情况设置
&Connector port="80" protocol="HTTP/1.1"
maxThreads="600"
minSpareThreads="100"maxSpareThreads="500"acceptCount="700"connectionTimeout="20000" redirectPort="8443" /&
这样设置以后,基本上没有再当机过。。。。。
maxThreads="600"
///最大线程数minSpareThreads="100"///初始化时创建的线程数maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
----------------------------------------------------------------------------------------------------------------------------------
一、Tomcat的JVM提示内存溢出
查看%TOMCAT_HOME%\logs文件夹下,日志文件是否有内存溢出错误
二、修改Tomcat的JVM
1、错误提示:java.lang.OutOfMemoryError: Java heap space
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,Out of Memory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的使用内存即可解决此问题。 Windows环境下修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m Linux环境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’ 其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。
2、错误提示: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)那么就会产生此错误信息了。解决方法:
在catalina.bat的第一行增加:set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m在catalina.sh的第一行增加:JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
3、JVM设置
堆的尺寸 -Xmssize in bytes
设定Java堆的初始尺寸,缺省尺寸是MB)。这个值必须是1024个字节(1KB)的倍数,且比它大。(-server选项把缺省尺寸增加到32M。) -Xmnsize in bytes
为Eden对象设定初始Java堆的大小,缺省值为640K。(-server选项把缺省尺寸增加到2M。) -Xmxsize in bytes
设定Java堆的最大尺寸,缺省值为64M,(-server选项把缺省尺寸增加到128M。) 最大的堆尺寸达到将近2GB(2048MB)。 请注意:很多垃圾收集器的选项依赖于堆大小的设定。请在微调垃圾收集器使用内存空间的方式之前,确认是否已经正确设定了堆的尺寸。 垃圾收集:内存的使用 -XX:MinHeapFreeRatio=percentage as a whole number
修改垃圾回收之后堆中可用内存的最小百分比,缺省值是40。如果垃圾回收后至少还有40%的堆内存没有被释放,则系统将增加堆的尺寸。 -XX:MaxHeapFreeRatio=percentage as a whole number
改变垃圾回收之后和堆内存缩小之前可用堆内存的最大百分比,缺省值为70。这意味着如果在垃圾回收之后还有大于70%的堆内存,则系统就会减少堆的尺寸。 -XX:NewSize=size in bytes
为已分配内存的对象中的Eden代设置缺省的内存尺寸。它的缺省值是640K。(-server选项把缺省尺寸增加到2M。) -XX:MaxNewSize=size in bytes
允许您改变初期对象空间的上限,新建对象所需的内存就是从这个空间中分配来的,这个选项的缺省值是640K。(-server选项把缺省尺寸增加到2M。) -XX:NewRatio=value
改变新旧空间的尺寸比例,这个比例的缺省值是8,意思是新空间的尺寸是旧空间的1/8。 -XX:SurvivorRatio=number
改变Eden对象空间和残存空间的尺寸比例,这个比例的缺省值是10,意思是Eden对象空间的尺寸比残存空间大survivorRatio+2倍。 -XX:TargetSurvivorRatio=percentage
设定您所期望的空间提取后被使用的残存空间的百分比,缺省值是50。 -XX:MaxPermSize=size in MB
长久代(permanent generation)的尺寸,缺省值为32(32MB)。
三、查看Tomcat的JVM内存
1. Tomcat6中没有设置任何默认用户,因而需要手动往Tomcat6的conf文件夹下的tomcat-users.xml文件中添加用户。
如:&role rolename="manager"/&
&user username="tomcat" password="tomcat" roles="manager"/&
注:添加完需要重启Tomcat6。
2. 访问http://localhost:8080/manager/status,输入上面添加的用户名和密码。
3. 然后在如下面的JVM下可以看到内存的使用情况。
Free memory: 2.50 MB Total memory: 15.53 MB Max memory: 63.56 MB
四、Tomcat连接数设置
在tomcat配置文件server.xml中的&Connector ... /&配置中,和连接数相关的参数有:minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为falseconnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。Unix中如何设置这些参数,请参阅Unix常用监控和管理命令
浏览 23178
daichangfu
浏览: 180163 次
来自: 北京
通过ajaxError 失效Session过期的简单方法:ht ...
学习了,用这个就简单。。。
有用,解决了254字节限制问题!谢谢
http://www.9958.pw/post/jquery_ ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分:
所谓堆区即为通过new的方式创建的对象(类实例)所占用的内存空间, 堆是运行时数据区域;
非堆区即为代码、常量、外部访问(如文件访问流所占资源)等。
配置堆区的(-Xms 、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn)
配置非堆区(-XX:PermSize、-XX:MaxPermSize)
一. 堆区配置参数:
&&& 1、-Xms :表示java虚拟机堆区内存初始内存分配的大小,虚拟机在启动时向系统申请的内存的大小
  2、-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。
如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。
说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch捕捉。
&&& -XX:newSize、-XX:MaxnewSize、-Xmn:新生代、中生代、老生代。java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。
&&& 1、-XX:newSize:表示新生代初始内存的大小,应该小于 -Xms的值;
&&& 2、-XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于 -Xmx的值;
&&& 3、-Xmn:至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,但需要注意的是这个参数是在JDK1.4版本以后才使用的。
二. 非堆区内存配置的两个参数:
&&& 1、-XX:PermSize:表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存)
&&& 2、-XX:MaxPermSize:表示对非堆区分配的内存的最大上限。
这里面非常要注意的一点是:在配置之前一定要慎重的考虑一下自身软件所需要的非堆区内存大小,因为此处内存是不会被java垃圾回收机制进行处理的地方。并且更加要注意的是 最大堆内存与最大非堆内存的和绝对不能够超出操作系统的可用内存。
XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。
说说为什么会内存益出:
(1)这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同。
(2)GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。
& 这种错误常见在web服务器对JSP进行pre compile的时候。&&
阅读(...) 评论() &

我要回帖

更多关于 tomcat permsize 的文章

 

随机推荐