仓酷云
标题:
发布一篇tomcat内存溢出总结
[打印本页]
作者:
分手快乐
时间:
2015-1-18 11:21
标题:
发布一篇tomcat内存溢出总结
不得不提一下的是:.net网页编程是看到java红,而开发出来的工具。
在临盆情况中tomcat内存设置欠好很简单呈现内存溢出。形成内存缘故原由是纷歧样的,固然处置体例也纷歧样。
这里依据平常碰到的情形和相干材料举行一个总结。罕见的一样平常会有上面三种情形:
1.OutOfMemoryError:Javaheapspace
2.OutOfMemoryError:PermGenspace
3.OutOfMemoryError:unabletocreatenewnativethread.
关于前两种情形,在使用自己没有内存保守的情形下能够用设置tomcatjvm参数来办理。(-Xms-Xmx-XX:PermSize -XX:MaxPermSize)
最初一种大概必要调剂操纵体系和tomcatjvm参数同时调剂才干到达目标。
第一种:是堆溢出。
在JVM中假如98%的工夫是用于GC且可用的Heapsize不敷2%的时分将抛出此非常信息。
没有内存保守的情形下,调剂-Xms-Xmx参数能够办理。
-Xms:初始堆巨细
-Xmx:最年夜堆巨细
但堆的巨细受上面三方面影响:
1.相干操纵体系的数据模子(32-bt仍是64-bit)限定;(32位体系下,一样平常限定在1.5G~2G;我在2003server体系下(物理内存:4G和6G,jdk:1.6)测试1612M,64为操纵体系对内存无穷制。)
2.体系的可用假造内存限定;
3.体系的可用物理内存限定。
堆的巨细可使用java-Xmx***M version命令来测试。撑持的话会呈现jdk的版本号,不撑持会报错。
-Xms-Xmx一样平常设置成一样对照比如如setJAVA_OPTS=-Xms1024m-Xmx1024m
第二种:永世保留地区溢出
PermGenspace的全称是PermanentGenerationspace,是指内存的永世保留地区。这一部分用于寄存Class和Meta的信息,Class在被Load的时分被放进PermGenspace地区,它和和寄存Instance的Heap地区分歧,GC(GarbageCollection)不会在主程序运转期对PermGenspace举行清算,以是假如你的APP会LOAD良多CLASS的话,就极可能呈现PermGenspace毛病。这类毛病罕见在web服务器对JSP举行precompile的时分。但今朝的hibernate和spring项目中也很简单呈现如许的成绩。http://www.javaeye.com/topic/80620?page=1 的帖子有会商的这个成绩。多是因为这些框架会静态class,并且jvm的gc是不会清算PemGenspace的,招致内存溢出。
这一个通常为加年夜-XX:PermSize -XX:MaxPermSize来办理成绩。
-XX:PermSize永世保留地区初始巨细
-XX:PermSize永世保留地区初始最年夜值
这一样平常分离第一条利用,好比setJAVA_OPTS=-Xms1024m-Xmx1024m -XX:PermSize=128M-XX:PermSize=256M
有一点必要注重:java-Xmx***M version命令来测试的最年夜堆内存是-Xmx与 -XX:PermSize的和好比体系撑持最年夜的jvm堆巨细事1.5G,那-Xmx1024m -XX:PermSize=768M是没法运转的。
<p>
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
作者:
简单生活
时间:
2015-1-18 17:11
是一种使网页(Web Page)产生生动活泼画面的语言
作者:
admin
时间:
2015-1-22 16:12
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
莫相离
时间:
2015-1-25 12:56
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
飘飘悠悠
时间:
2015-1-26 12:56
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
再现理想
时间:
2015-2-4 14:16
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者:
变相怪杰
时间:
2015-2-6 09:55
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者:
兰色精灵
时间:
2015-2-15 22:28
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者:
若天明
时间:
2015-2-21 11:59
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
透明
时间:
2015-2-25 10:50
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者:
只想知道
时间:
2015-3-7 19:53
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者:
再见西城
时间:
2015-3-7 22:38
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者:
谁可相欹
时间:
2015-3-19 09:35
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
因胸联盟
时间:
2015-3-27 16:34
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2