网站运营
位置:首页>> 网站运营>> linux解决Tomcat内存溢出的问题

linux解决Tomcat内存溢出的问题

作者:jingxian  发布时间:2023-10-19 00:32:12 

标签:linux,tomcat,内存,溢出

Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机。JAVA程序启动时JVM会分配一个初始内存和最大内存给程序。当程序需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。

一、常见的Java内存溢出有以下三种:

1. java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出

解释说明:JVM在启动的时候会自动设置JVM Heap的值,JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。其初始空间默认是物理内存的1/64,最大空间不可超过物理内存。JVM提供-Xmn -Xms -Xmx等选项来进行设置。

出错场景:在JVM中,如果98%的时间是用于GC,且可用的Heap size不足2%时,将会出现JVM Heap溢出

解决方法:修改JVM Heap的大小。

2. java.lang.OutOfMemoryError: PermGen space 即PermGen space溢出

解释说明:PermGen space是指内存的永久保存区域。这个区域主要存放Class和Meta信息,Class在被Load时就会被放入PermGen space。

出错场景:如果APP载入很多CLASS,就可能会出现PermGen space溢出。(因为sun的GC不会在程序运行时对PermGen space进行清理)常见于web服务器对JSP进行pre compile的时候

解决方法:修改MaxPermSize大小

3. java.lang.StackOverflowError 即栈溢出

解释说明:JVM采用的是栈式的虚拟机,函数的调用过程都体现在堆栈和退栈上。

出错场景:通常栈的大小是1-2MB的,如果调用构造函数的 “层”太多,则会出现栈溢出

解决方法:修改程序

二、Tomcat的JVM内存溢出解决方法

在生产环境中,tomcat内存设置不好很容易出现JVM内存溢,解决方法就是修改Tomcat中的catalina.sh文件。
在catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下

# vi TOMCAT_HOME/bin/catalina.sh
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"

其他说明:

1.“m”说明单位是MB,否则默认是KB
2.一般使用物理内存的80%作为堆大小
3.一般把-Xms和-Xmx设为一样大
4.一般把-Xmn设置为-Xmx值的1/4
5.一般将堆的总大小的50%到60%分配给新生成的池

三、jvm参数说明:

-server 一定要作为第一个参数,启用JDK的server版本,在多个CPU时性能佳
-Xms java Heap初始大小。 默认是物理内存的1/64。
-Xmx java heap最大值。建议均设为物理内存的80%。不可超过物理内存。
-Xmn java heap最小值,一般设置为Xmx的3、4分之一。
-XX:PermSize 设定内存的永久保存区初始大小,缺省值为64M。
-XX:MaxPermSize 设定内存的永久保存区最大大小,缺省值为64M。
-XX:SurvivorRatio=2 生还者池的大小,默认是2。如
-XX:NewSize 新生成的池的初始大小。 缺省值为2M。
-XX:MaxNewSize 新生成的池的最大大小。 缺省值为32M。
+XX:AggressiveHeap 让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss 每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-XX:+UseParNewGC 缩短minor收集的时间
-XX:+UseConcMarkSweepGC 缩短major收集的时间
-XX:userParNewGC 可用来设置并行收集(多CPU)
-XX:ParallelGCThreads 可用来增加并行度(多CPU)
-XX:UseParallelGC 设置后可以使用并行清除收集器(多CPU)

0
投稿

猜你喜欢

  • 首先自我介绍吧,我是兼职从事网赚GG与百度代注册代收PIN业务的,正规工作单位是邮政局。下面就GG发PIN与网站主长时间收不到平邮PIN给大
  • 概述微软的最新邮件系统Exchange server2007中新增加了一项服务:自动发现服务(auto discover service).
  • 安装篇2003默认安装不带IIS的,要安装,请点击开始->管理工具->配置您的服务器向导然后一步步的下一步。到了列表选择项目的时
  • 互联网广告之于互联网的地位,笔者曾写文论述过,这里再不赘述。广告是互联网企业衣食父母的地位是笔者认为不容置疑的。博客这个互联网“新宠”,在为
  • 一、首先把php的压缩包(这里以PHP4.3.2为例)解压到C:\php-4.3.2-Win32目录中,然后从其中找到一个叫php.ini-
  • SEO,你也许还不太清楚这是个什么东西;SEO,你也许已经发现它成了周围的站长和blogger们津津乐道的话题。无论如何,我希望谨以此文,还
  • 11月25日消息 据国外媒体报道,谷歌昨日宣布,任命莱克希·瑞斯(Lexi Reese)为DoubleClick Ad Exchange美国
  • seo一个时下炙手可热的词,一个让众站长为之心动的词,一个让让长疯狂的词,今天它的热度已经烧到好多层面.产生了很多的周边行业也使原来一些行业
  • 广东的今天在初冬的季节里也略有凉意,起风了我站在7楼的窗台上观望!望着马路上为生活奔波的人们.感觉到眼前很模糊,因为此时的心情无法用语言来形
  • SupeSite7.0作为Comsenz旗下的社区产品SupeSite 7.0 全面支持对 Discuz!、UCenter Home 的聚合
  • 在"授权模式"对话框,选择客户端的授权模式,可以是"每客户"或"每服务器"方式。
  • 不知不觉在网络也混了3年了,回想起当初放弃了固定工作,毅然投入网络的怀抱,心理还是觉得很值得。因为我发现了自己对做站的兴趣非常之大,我认 为
  • 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib
  • 今天本地调试PHP程序,用到了.htaccess,而默认配置里面开启.htaccess,在网上找到了开启.htaccess的可行方法,供朋友
  • 旷土年前写过一篇标题为《旷土:中国商业网址的成功经验分享 初期发展篇》的文章,写得比较粗糙,今天就来详细谈谈运作中的一些经验。旷土在运作中国
  • /proc是个虚拟文档系统,我们能够通过对他的读写操作做为和kernel实体间进行通信的一种手段.也就是说能够通过修改/proc中的文档,来
  • 随着应用软件的开发规模及复杂程度日趋大型化,使得软件开发模式从早期的个人作坊式渐渐转变为团队协作开发方式,在这种团队协作的开发模式,为了管理
  • [xmail@xmail log]$ telnet smtp.263.net 25Trying 211.150.96.25...Connec
  • 1)了解搜索引擎如何抓取网页和如何索引网页。你需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SE robot或叫w
  • 不管营销的理论派们把网络营销写得多么高深,您都得而且不得不接受这样一个事实: 如果没有流量,不管你的网站制作的多么的伟大,不管你的网站制作的
手机版 网站运营 asp之家 www.aspxhome.com