永利皇宫注册Linux和Windows中tomcat修改内部存款和储蓄器大小的艺术

在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh

其起初空间(即-Xms)是物理内部存款和储蓄器的1/64,最大空间(-Xmx)是轮廓内部存款和储蓄器的1/2。
能够选取JVM提供的-Xmn -Xms -Xmx等选用可举行安装

 答案1 安装汤姆cat运维的发端内存
其起始空间(即-Xms)是情理内部存款和储蓄器的1/64,最大空间(-Xmx)是物理内部存款和储蓄器的四分之二。能够选拔JVM提供的-Xmn
-Xms -Xmx等选用可
进行安装
三、实例,以下给出1G内部存储器境况下java jvm 的参数设置参谋:
JAVA_OPTS=”-server -Xms800m -Xmx800m  -XX:PermSize=64M
-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true “
JAVA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m -XX: 
NewSize=192m -XX:MaxNewSize=384m”
CATALINA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m 
-XX:NewSize=192m -XX:MaxNewSize=384m”
Linux:
在/usr/local/apache-tomcat-5.5.23/bin 目录下的catalina.sh
添加:JAVA_OPTS=’-Xms512m -Xmx1024m’
要加“m”表达是MB,不然便是KB了,在运营tomcat时会 报内部存款和储蓄器不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值
Windows
在catalina.bat最前头加入
set JAVA_OPTS=-Xms128m -Xmx350m 
要是用startup.bat运维tomcat,OK设置生效.够成功的分配200M内部存款和储蓄器.
唯独一旦不是施行startup.bat运行tomcat而是利用windows的种类服务运营tomcat服务,下边包车型客车安装就不奏效了,
就是说set JAVA_OPTS=-Xms128m -Xmx350m
没起功效.上边分配200M内部存储器就OOM了..
windows服务实施的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.
消除办法:
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache
Software Foundation\Tomcat Service
Manager\Tomcat5\Parameters\JavaOptions
原值为
-Dcatalina.home=”C:\ApacheGroup\Tomcat
5.0″
-Djava.endorsed.dirs=”C:\ApacheGroup\Tomcat
5.0\common\endorsed”
-Xrs
加入 -Xms300m -Xmx350m  
重起tomcat服务,设置生效 

一、参数表明
-server:必定要作为第三个参数,在多少个CPU时质量佳
-Xms:开首Heap大小,使用的细微内部存款和储蓄器,cpu品质高时此值应设的大学一年级些
-Xmx:java
heap最大值,使用的最大内部存款和储蓄器上面三个值是分配JVM的小小和最大内部存款和储蓄器,取决于硬件物理内部存款和储蓄器的大大小小,建议均设为物理内部存款和储蓄器的一半。
-XX:PermSize:设定内部存款和储蓄器的千古保存区域
-XX:马克斯PermSize:设定最大内部存款和储蓄器的不可磨灭保存区域
-XX:马克斯NewSize:-Xss 15120
那使得JBoss每扩张多个线程(thread)就能够立即消耗15M内部存款和储蓄器,而最好值应该是128K,暗许值好疑似512k.
+XX:AggressiveHeap 会使得
Xms没风趣。那些参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内部存储器,再吃尽二个G的swap。
-Xss:各类线程的Stack大小
-verbose:gc 现实垃圾搜罗消息
-Xloggc:gc.log 内定垃圾搜罗日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :减弱minor搜罗的时间
-XX:+UseConcMarkSweepGC :降低major搜罗的光阴唤醒:此选项在Heap Size
相当大何况Major收罗时间较长的气象下利用更适用。
二、汤姆cat 自己的起步设置:在%tomcat_home%/bin目录下的”
catalina.bat”(Linux 际遇刚为”catalina.sh”)展开编辑此文件,在”echo Using
CATALINA_BASE: %CATALINA_BASE%”前加上:
set JAVA_OPTS=%JAVA_OPTS%
-server
-Xms4096m
-Xmx4096m
-XX:PermSize=128M
-XX:MaxPermSize=256m
-XX:NewSize=256m
-XX:马克斯NewSize=512m完整片断如下:echo 增多
JAVA_OPTS=”
-server
-Xms4096m
-Xmx4096m
-XX:PermSize=128M
-XX:MaxPerSize=256m
-XX:NewSize=256m
-XX:MaxNewSize=512m”
set JAVA_OPTS=%JAVA_OPTS%
-server
-Xms4096m
-Xmx4096m
-XX:PermSize=128M
-XX:MaxPermSize=256m
-XX:NewSize=256m
-XX:MaxNewSize=512mecho Using CATALINA_BASE: %CATALINA_BASE%
三、Eclipse 内汤姆cat设置运营:

添加:JAVA_OPTS=’-Xms512m -Xmx1024m’

实例,以下给出1G内部存款和储蓄器处境下java jvm 的参数设置参照他事他说加以考察:

只顾:此主题材料注册表项依据差别的本子恐怕存在差别的扭转,请小心其结点。

  1. window -> Preferences ->
    Servers(myeclipse下是那些选项发用另外插件则不均等,能够找到呼应的菜谱)
    -> 汤姆cat 6.x(有例外的本子) –> JDK -> Optional Java VM
    arguments:输入: -server -Xms4096m -Xmx4096m -XX:PermSize=128M
    -XX:马克斯PermSize=256m -XX:NewSize=256m -XX:MaxNewSize=512m
  2. window -> Preferences ->
    Servers(myeclipse下是其一选项发用另外插件则分化,能够找到相应的菜系)
    -> Tomcat 6.x(有两样的版本) -> Lanunch -> Create Launch
    Configuration -> Arguments -> VM arguments: -server -Xms4096m
    -Xmx4096m -XX:PermSize=128M -XX:马克斯PermSize=256m -XX:NewSize=256m
    -XX:马克斯NewSize=512m

要加“m”表达是MB,不然正是KB了,在开发银行tomcat时会报内部存款和储蓄器不足。

复制代码 代码如下:

永利皇宫注册 1

-Xms:初始值

JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M
-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”
JAVA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m”
CATALINA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m
-XX:NewSize=192m -XX:MaxNewSize=384m”

答案2 汤姆cat 的JVM 内部存储器溢出难题的缓和
驷不比舌字: tomcat 的jvm 内部存款和储蓄器溢出题指标缓和 
前段时间在熟谙一个支出了有几年的等级次序,供给把数据库从mysql移植到oracle,首先把jdbc的连天指向mysql,打包放到tomcat里面,能够跑起来,没不符合规律,可是当把jdbc连接指向oracle的时候,tomcat就再而三抛java.lang.OutOfMemoryError的一无可取,上网google了瞬间,驾驭了弹指间tomcat的运维机制,也化解了难题,share出来,以备查。 
1、首先是:java.lang.OutOfMemoryError: Java heap space  解释: 
Heap size 设置 
JVM堆的设置是指java程序运营过程中JVM能够调配使用的内部存款和储蓄器空间的设置.JVM在开发银行的时候会活动安装Heap
size的值,其开首空间(即-Xms)是概略内部存款和储蓄器的1/64,最大空间(-Xmx)是情理内部存款和储蓄器的四分之二。可以利用JVM提供的-Xmn
-Xms -Xmx等选项可进展设置。Heap size 的高低是Young Generation 和Tenured
Generaion 之和。 
唤醒:在JVM中假诺98%的时日是用以GC且可用的Heap size
不足2%的时候将抛出此万分新闻。 
晋升:Heap Size
最大实际不是超越可用物理内部存款和储蓄器的80%,一般的要将-Xms和-Xmx选项设置为一样,而-Xmn为十分之三的-Xmx值。 
减轻方式: 
手动设置Heap size 
修改TOMCAT_HOME/bin/catalina.bat,在“echo “Using CATALINA_BASE:
$CATALINA_BASE””上边投入以下行: 
Java代码 
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m
-XX:MaxNewSize=256m   
set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m
-XX:MaxNewSize=256m 
或修改catalina.sh 
在“echo “Using CATALINA_BASE: $CATALINA_BASE””上边投入以下行: 
JAVA_OPTS=”$JAVA_OPTS -server -Xms800m -Xmx800m
-XX:MaxNewSize=256m” 
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 应用软件下都用了大量的第三方jar,
其尺寸超过了jvm私下认可的深浅(4M)那么就能够发生此错误音信了。 
化解方法: 

-Xmx:最大值

Linux:

  1. 手动设置马克斯PermSize大小 
    修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),在Java代码 
    “echo “Using CATALINA_BASE: $CATALINA_BASE””上边投入以下行:    
    set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M
    -XX:MaxPermSize=512m   
    “echo “Using CATALINA_BASE: $CATALINA_BASE””上边投入以下行: 
    set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M
    -XX:MaxPermSize=512m 
    catalina.sh下为: 
    Java代码 
    JAVA_OPTS=”$JAVA_OPTS -server -XX:PermSize=128M
    -XX:MaxPermSize=512m”  
    JAVA_OPTS=”$JAVA_OPTS -server -XX:PermSize=128M
    -XX:MaxPermSize=512m” 
    别的看到了别的贰个帖子,以为蛮好,摘抄如下: 
    分析java.lang.OutOfMemoryError: PermGen space 
    发掘众四人把难点归因于:
    spring,hibernate,tomcat,因为他们动态发生类,导致JVM中的permanent
    heap溢出 。然后消除方法仁者见仁,有一些人说升级tomcat版本到新型以致干脆不用tomcat。还应该有人不可思议spring的难题,在spring论坛上探究很刚毅,因为spring在AOP时使用CBLIB会动态发生众多类。 
    但难点是干什么这一个金牌的开源会出现同一个题目啊,那么是还是不是更基础的原故吧?tomcat在Q&A很别扭的答疑了那或多或少,大家掌握这么些标题,但那几个标题是由多个更基础的难题时有发生。 
    于是乎有人对更基础的JVM做了反省,发现了难题的要害。原本SUN
    的JVM把内部存款和储蓄器分了分裂的区,个中一个正是permenter区用来寄放用得非常多的类和类描述。本来SUN设计的时候认为这几个区域在JVM运行的时候就牢固了,但他从不想到现在动态会用得这样遍布。并且这么些区域有特有的污源收回机制,未来的难题是动态加载类到这一个区域后,gc根本不能回收! 
    对于上述三个难题,我的管理是: 
    在catalina.bat的首先行扩大: 
    Java代码 
    set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m
    -XX:MaxPermSize=256m   
    set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m
    -XX:MaxPermSize=256m 
    在catalina.sh的首先行增添: 
    Java代码 
    JAVA_OPTS=
    -Xms64m 
    -Xmx256m 
    -XX:PermSize=128M 
    -XX:MaxNewSize=256m 
    -XX:MaxPermSize=256m 

-Xmn:最小值

在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh
添加:JAVA_OPTS=’-Xms512m -Xmx1024m’
要加“m”表达是MB,不然便是KB了,在开发银行tomcat时会报内部存储器不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值

注:跟OS的种类版本,jdk版本有相当大的关系。假诺希望丰裕利用内部存储器,就思考采用集群。

Windows
在catalina.bat最前边到场

永利皇宫注册 2

复制代码 代码如下:

set JAVA_OPTS=-Xms128m -Xmx350m

借使用startup.bat运行tomcat,OK设置生效.够成功的抽成200M内部存款和储蓄器.

只是假若不是实践startup.bat运营tomcat而是利用windows的系统服务运维tomcat服务,
地点的装置就不奏效了,
就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起功效.
地方分配200M内部存款和储蓄器就OOM了
windows服务试行的是bin/tomcat.exe.他读取注册表中的值,实际不是catalina.bat的设置.
化解办法:

复制代码 代码如下:

修改注册表HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation
/Tomcat Service Manager/Tomcat5/Parameters/JavaOptions

原值为

复制代码 代码如下:

-Dcatalina.home=”C:/ApacheGroup/Tomcat 5.0″
-Djava.endorsed.dirs=”C:/ApacheGroup/Tomcat 5.0/common/endorsed”
-Xrs

加入

复制代码 代码如下:

-Xms300m -Xmx350m

重起tomcat服务,设置生效
(Tomcat 5.5 的话,在Apache Software Foundation下有个Procrun 2.0的
Tomcat5/Parameters/Java下
设置JvmMs和JvmMx的值就足以了,要修改10进制的值哦)

可是,OS对内部存款和储蓄器也会有限制

附:怎么着收获JVM的最大可用内部存储器

在命令行下用 java -XmxXXXXM -version
命令来张开测量检验,然后逐步的增大XXXX的值,借使施行常规就代表钦命的内部存款和储蓄器大小可用,不然会打字与印刷错误音讯。

骨子里发掘版本上有细微差其余JDK最大可能内存值都不尽同样,因而在骨子里的使用中依旧要协和考试须臾间阅览底内部存款和储蓄器能达到什么样的值。

透过这几个表想表明的是,假若你的机械的内存太多以来,只能通过多运维多少个实例来提供机器的利用率了,比如跑汤姆cat,你可以多装多少个汤姆cat并做集群,由此及彼。

那么些住户测量检验的结果,作者那边引用一下

信用合作社 JVM版本 最大内部存款和储蓄器(兆)client 最大内部存款和储蓄器(兆)server

复制代码 代码如下:

SUN 1.5.x 1492 1520
SUN 1.5.5(Linux) 2634 2660
SUN 1.4.2 1564 1564
SUN 1.4.2(Linux) 1900 1260
IBM 1.4.2(Linux) 2047 N/A
BEA JRockit 1.5 (U3) 1909 1902

故而跟OS的连串版本,jdk版本有比异常的大的关联。借使希望丰盛利用内部存款和储蓄器,就怀念动用集群。

一、在tomcat的catalina.bat中修改,加入-Dcom.sun.management.jmxremote参数

复制代码 代码如下:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote

二、须要利用jdk5.0上述,展开bin目录下的jconsole.exe,就能够连接追踪tomcat的内部存款和储蓄器使用情状

您只怕感兴趣的小说:

  • windows 10 + vwware+centos
    6.5设想机系统设置汤姆cat
  • Java零基础教程之Windows下安装、运行汤姆cat服务器方法图解(免安装版)
  • Windows下tomcat安装图像和文字化教育程(安装版)
  • windows下tomcat7.0安装图像和文字化教育程
  • 在Windows下何以设置汤姆cat服务器搭建
  • Windows系统下安装Tomcat服务器和配置虚构目录的不二等秘书籍
  • windows
    tomcat配置齐全[详细]
  • windows下布置八个或四个汤姆cat运营的点子
  • windows使用批管理公布web到tomcat并运转tomcat脚本分享
  • Windows下tomcat安装教程

发表评论

电子邮件地址不会被公开。 必填项已用*标注