`
喜欢蓝色的我
  • 浏览: 367166 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA_OPTS设置

 
阅读更多

JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。

 


JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"

-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-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收集时间较长的情况下使用更合适。

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 2、在tomcat中redeploy时出现outofmemory的错误. 可以有以下几个方面的原因: 
1,使用了proxool,因为proxool内部包含了一个老版本的cglib. 
2, log4j,最好不用,只用common-logging 
3, 老版本的cglib,快点更新到最新版。
4,更新到最新的hibernate3.2 3、

这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。
一、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)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
二、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.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 
三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

 

 

2012年3月8日16:21:37

ava虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制。否则可能导致应用程序宕掉。

举例说明含义:
-Xms128m 
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m 
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。

说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。

PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。

-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space

MaxPermSize缺省值和-server -client选项相关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m


经验:
1、慎用最小限制选项Xms,PermSize已节约系统资源。

 

转:http://blog.csdn.net/kongls08/article/details/8468713

分享到:
评论

相关推荐

    java JAVA_OPTS javaagent

    标题中的"java JAVA_OPTS javaagent"涉及到Java应用程序的启动参数设置,特别是`JAVA_OPTS`环境变量和`javaagent`选项,这两个是Java虚拟机(JVM)启动时的关键配置项。`JAVA_OPTS`通常用于传递额外的JVM参数,如...

    JAVA-OPTS参数设置.docx

    JAVA-OPTS参数设置 JAVA-OPTS 是一个变量,用于设置 JVM 相关运行参数。JVM 是 Java Virtual Machine 的缩写,表示 Java 虚拟机。JAVA-OPTS 变量的设置对 Java 应用程序的性能和稳定性具有重要影响。 在设置 JAVA-...

    Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的

    Java 环境配置与设置 JAVA_HOME, CLASSPATH, PATH 的目的 Java 环境配置是 Java 开发的基础,我们需要正确地配置 JAVA_HOME, CLASSPATH, PATH 等环境变量,以便正确地编译和运行 Java 程序。在本节中,我们将详细地...

    JAVA_SET_enviroment

    标题“JAVA_SET_enviroment”暗示了我们讨论的主题与设置Java开发环境有关,特别是关于配置Java环境变量的步骤。在编程领域,尤其是Java开发中,正确地设置环境变量是至关重要的,因为它们指定了系统如何找到并执行...

    jdk 环境变量 JAVA_HOME 批处理文件 双击搞定

    jdk 环境变量 JAVA_HOME 批处理文件 双击搞定 最多只需修改个JAVA-HOME,其他的classpath path之类的bat文件搞定

    tomcat源码分析

    `Catalina.bat` 是Tomcat在Windows环境下启动的批处理文件,主要负责设置环境变量、执行Java虚拟机(JVM)并加载Tomcat的核心类。解析这个脚本有助于理解Tomcat的启动过程,包括如何设置系统路径、JVM参数以及初始...

    Eclipse内存溢出

    set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties" set JAVA_OPTS=%JAVA_OPTS% -Xmx512m echo Using CATALINA_BASE: %CATALINA_BASE% set JAVA_OPTS=%JAVA...

    apk反编译工具

    apk反编译工具 直接运行bin目录中的jadx-gui.bat,选择apk文件即可 有些apk的体积比较大的时候,反编译的时候会卡住或者假死。 解决方案: 使用记事本或者notpad++打开jadx-gui.bat ...set DEFAULT_JVM_OPTS=-Xmx1024M

    Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题

    4. 确保在`ExecStart`行中引用`$DOCKER_OPTS`,这样Docker守护进程在启动时会使用`/etc/default/docker`中设置的参数。 例如,更新后的`docker.service`文件的`[Service]`部分可能如下所示: ```bash [Service] ...

    tomcat常用功能的配置

    例如,在`catalina.bat`或`catalina.sh`中,可以通过设置`JAVA_OPTS`来调整JVM的内存大小: ```batch set JAVA_OPTS=-Xms256m -Xmx256m -XX:MaxPermSize=64m ``` 这些配置可以帮助优化Tomcat的性能和稳定性,确保...

    设置jvm内存的方法

    本文将详细介绍如何为Java虚拟机(JVM)设置内存参数,以及在不同场景下进行有效配置的方法。 #### 二、JVM内存参数详解 1. **-Xms (Initial heap size)**: - **含义**: 设置JVM启动时的初始堆内存大小。 - **重要...

    Java JAAS安全认证 demo

    Java Authentication and Authorization Service (JAAS) 是Java平台中用于实现用户身份验证和权限管理的核心组件。这个"Java JAAS安全认证 demo"是一个示例项目,旨在帮助开发者理解如何在Java应用中实施安全认证...

    JDK+Tmocat_for_linux的环境搭建.doc

    在Linux系统中搭建JDK和Tomcat环境是部署Java Web应用的基础步骤。本文将详细介绍如何在Linux上安装JDK 1.6.0_01和Tomcat 6.0.16,以及配置相应的环境变量。 首先,我们需要准备两个源码包: 1. JDK:jdk-1.6.0_01-...

    分别在Linux和Windows下设置JVM内存的简单方法

    添加:JAVA_OPTS=’-Xms512m -Xmx1024m’ 或者 JAVA_OPTS=”-server -Xms800m -Xmx800m  -XX:MaxNewSize=256m” 或者 CATALINA_OPTS=”-server -Xms256m -Xmx300m” Windows服务器: 在/apache-tomcat-5.5.23/bin ...

    优化Tomcat配置(内存、并发、缓存等方面)方法详解

    Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。 JAVA_OPTS参数说明 server 启用jdk 的 server 版; -Xms java虚拟机初始化时的最小内存; -...

    classfinal-fatjar-1.2.1.jar

    ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译。执行java -jar classfinal-fatjar.jar 后按提示即可完成...

    解决Java_heap_space问题

    可以通过在 catalina.bat 文件中添加以下命令来解决该问题:set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true。 Java_heap_space 问题是 Java 应用程序中一个常见的问题,解决该问题需要调整 JVM 堆空间...

    jdk1.8.0_171-linux-x64

    oracle官方下载,本jdk是linux版,下载后配置环境变量后可直接使用 环境变量配置 1、打开配置文件: # sudo vim /etc/profile ... export JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx2048m -XX:PermSize=512m

    Ubantu tomocat启动报错 no opencv_java249 in java.library.path问题解决方案压缩包

    - 或者,如果你只在特定应用中使用OpenCV,可以在应用程序的`setenv.sh`(或`setenv.bat`)脚本中设置`JAVA_OPTS`。 6. **重启Tomcat**: 修改环境变量后,需要重启Tomcat服务以使改动生效。可以使用`sudo ...

Global site tag (gtag.js) - Google Analytics