tomcat 时区错误 ,JAVA启动参数,JA VA_OPTS,OutOfMemoryError

 $TOMCAT_HOME$/CATALINA.BAT第一行,增加 set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx900m -Duser.timezone=GMT+08 ================================================================================================================================= $JONAS_HOME/bin/unix/jonas 中: export JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128M -DFF_HOME=$JONAS_ROOT/ffhome"'-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】' http://jasli.itpub.net/post/15912/300322 ================================================================================================================================= The JAVA_OPTS environment variable can be used to specify additional arguments to the JVM JBoss will be run in. These can be set as regular environment variables on the platform, in the startup script (run.sh or run.bat, or (when using run.sh) in run.conf. Some examples: Memory settings JAVA_OPTS="-server -Xms128m -Xmx512m" JDK 1.3.1 JPDA settings JAVA_OPTS="-classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y" JDK 1.4.1 JPDA settings JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y" Setting Jetty webserver port JAVA_OPTS=-Djetty.port=80 -server -Xms 00m -Xmx 00m -Xss 00k +XX:AggressiveHeap +XX:AggressiveHeap:会使得 Xms 1220m没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。 另外Xmx作为允许jvm使用的最大内存数量,不应该超过物理内存的90%。 Xss 00k :这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k. 1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。现在的JAVA_OPTS为:-Xms 520m -Xmx 900m -Xss 128k 2.修改deploy/jbossweb-tomcat55.sar/service.xml 将maxThreads根据目前的访问量由默认的250降为75,并使用jboss 4默认未写在标准service.xml里面而jboss 3写入了的2个参数: maxSparseThreads=55,minSparseThreads=25 3.修改了oracle-ds.xml将最大连接数有150降为50. 4.去掉了一些不用的服务。 ================================================================================================================================= Tomcat 的JVM 内存溢出问题的解决 好久没有遇到这个问题了,最近做的项目有些多,并且同时发布到一个Tomcat下,没多长时间可爱的Tomcat就会被撑死,试着改了几个参数,但是问题依旧,可能是因为每个项目都是用的ssh架构,初始化内存占用太大,也可能是代码写的有问题,没有释放内存,明天用测试工具测试下。另外这种WebServer搭建结构很不合理,服务也不健壮;一定要改一改。下班回家路上想将WebServer转移到一台空闲的PC Server上,使用Apache+N个Tomcat实例,将应用分散到几个Tomcat实例下,我想这样情况可能会好很多。 先看下面解决问题的方法,没有尝试过,但是觉得很合理,明天到单位试一下。 【转】Tomcat 的JVM 内存溢出问题的解决 关于内存溢出问题转帖,备查。【转自】http://ahut9923.javaeye.com/blog/236859 1、首先是:java.lang.OutOfMemoryError: Java heap space 解释: Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。 提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-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 APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。 解决方法: 1. 手动设置MaxPermSize大小 修改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 备注: http://www.jbsolutions.net.in/out_of_memory_issue.html ================================================================================================================================= http://publib.boulder.ibm.com/wasce/V2.1.0/zh_CN/javaopts.html JAVA_OPTS 环境变量使用以下命令时,在执行该命令之前,可通过设置 JAVA_OPTS 环境变量将额外的选项传递给 Java 虚拟机。 deploy geronimo shutdown startup 初始堆大小要指定 Java 虚拟机的初始堆大小,请在启动服务器之前,将下列选项包含在 JAVA_OPTS 环境变量中: -XmsIm 其中 I 由初始堆大小替换(单位:MB)。最大堆大小要指定 Java 虚拟机的最大堆大小,请在服务器启动之前,在 JAVA_OPTS 环境变量中包含以下选项: -XmxMm 其中 M 由最大堆大小替换(单位:MB)。以大页面分配堆要指定以大页面分配堆,请在启动服务器之前,将下列选项包含在 JAVA_OPTS 环境变量中: -Xlp 指定以大页面分配堆。启用代理服务器请考虑服务器由防火墙保护的情况。服务器可能仍需要访问防火墙以外的站点,例如,使用管理控制台来访存并安装 JDBC 驱动程序。如果必须将服务器配置为使用代理服务器访问外部资源,请在启动服务器之前,将下列选项包含在 JAVA_OPTS 环境变量中: -DproxySet=true 配置 Java 虚拟机以使用代理服务器。 -DproxyHost=host 其中 host 是运行代理服务器的主机。 -DproxyPort=port 其中 port 是代理服务器侦听的端口。定制日志记录如果希望对服务器中的日志记录进行更精密的控制,那么您可以指定自己的日志记录设置,并在启动服务器之前在 JAVA_OPTS 环境变量中提供单独的 log4j.xml 文件。以下选项将覆盖 /var/log 目录下的 XYZ-log4j.properties 文件中定义的设置。 -Dorg.apache.geronimo.log4jservice.configuration=filename 其中,filename 必须是标准的文件名,它是相对于服务器实例目录位置的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值