当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

tomcat内存溢出总结[Java编程]

赞助商链接



  本文“tomcat内存溢出总结[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在生产环境中tomcat内存设置不好很简单呈现内存溢出.造成内存缘由是不一样的,当然处理方法也不一样.

这里按照平常碰到的情形和相关资料举行一个总结.常见的普通会有下面三种情形:

1.OutOfMemoryError: Java heap space

2.OutOfMemoryError: PermGen space

3.OutOfMemoryError: unable to create new native thread.

关于前两种情形,在利用本身没有内存泄露的情形下可以用设置tomcat jvm参数来办理.(-Xms -Xmx -XX:PermSize  -XX:MaxPermSize)

最后一种大概需求调整操作系统和tomcat jvm参数同时调整才能到达目的.

第一种:是堆溢出.

在JVM中假如98%的时间是用于GC且可用的 Heap size 不足2%的时刻将抛出此非常信息.

没有内存泄露的情形下,调整-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

第二种:永久保存区域溢出

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域.这一部份用于存放Class和Meta的信息,Class在被 Load的时刻被放入PermGen space区域,它和和存放Instance的Heap区域差别,GC(Garbage Collection)不会在主程序运行期对PermGen space举行清理,所以假如你的APP会LOAD很多CLASS的话,就极大概呈现PermGen space错误.这种错误常见在web服务器对JSP举行pre compile的时刻.但目前的hibernate和spring项目中也很简单呈现这样的问题.http://www.javaeye.com/topic/80620?page=1 的帖子有谈论的这个问题.大概是由于这些框架会动态class,并且jvm的gc是不会清理PemGen space的,招致内存溢出.

这一个普通是加大-XX:PermSize  -XX:MaxPermSize 来办理问题.

-XX:PermSize 永久保存区域初始大小

-XX:PermSize 永久保存区域初始最大值

这普通结合第一条利用,比方 set JAVA_OPTS= -Xms1024m -Xmx1024m  -XX:PermSize=128M -XX:PermSize=256M

有一点需求注意:java -Xmx***M  version 号令来测试的最大堆内存是 -Xmx与 -XX:PermSize的和 比方系统支持最大的jvm堆大小事1.5G,那-Xmx1024m  -XX:PermSize=768M 是无法运行的.


  以上是“tomcat内存溢出总结[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • centos6.0 下apache+tomcat整合笔记
  • IIS6+Tomcat7整合
  • 详解 Nginx + Tomcat HTTPS/SSL 配置办法
  • 怎样在xp下操作tomcat安置一个java web项目
  • JSP利用服务器搭建实施文档(Nginx+Tomcat)
  • <b>Linux下Tomcat集群搭建历程全记录</b>
  • Linux(Ubuntu)下Nginx安装配置及与Tomcat整合
  • Ubuntu下基于Nginx实现Tomcat集群负载均衡
  • <b>RedHat Linux 5 Tomcat 的安装及环境的配置</b>
  • <b>CentOS下Tomcat 5.5 与 jdk1.6安装</b>
  • <b>Linux下配置Nginx + 双Tomcat负载均衡</b>
  • Linux下Tomcat安装与启动
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .