JVM的配置,最常用的两个配置就是:
-Xms512m

–Xmx1024m

-Xms设置JVM的初始化内存大小,-Xmx为最大内存大小,当突破这个值,将会报内存溢出,导致的原因有很多,主要是虚拟机的回收问题以及程序设计上的内

存泄露问题;由于在超过-Xms时会产生页面申请的开销,所以一般很多应用服务器会推荐-Xms和-Xmx是等值的;最大值一般不保持在主机内存的75%的内存

左右(多个SERVER是加起来的内存),当JVM绝大部分时间处于回收状态,并且内存长时间处于非常长少的状态就会报:java.lang.OutOfMemoryError:Java

heap space的错误。

JVM内存配置分两大类:

1、-X开头的参数信息:一般每个版本变化不大。

2、-XX开头的参数信息:版本升级变化较大,如果没有太大必要保持默认即可

3、另外还有一个特殊的选项就是-server还是-client,他们在默认配置内存上有一些细微的区别,直接用JDK运行程序默认是-client,应用服务器生产模式一般

只会用-server。

1、-X开头的常用配置信息:

-Xnoclassgc 禁用垃圾回收,一般不适用这个参数

-Xincgc 启用增量垃圾回收

-Xmn1024K Eden区初始化JAVA堆的尺寸,默认值640K

-Xms512m JAVA堆初始化尺寸,默认是32M

-Xmx512m JAVA堆最大尺寸,默认64M,一般不超过2G,在64位机上,使用64位的JVM,需要操作系统进行unlimited方可设置到2G以上。

2、-XX开头常用内存配置信息:

-XX:-DisableExplicitGC 忽略手动调用GC的代码,如:System.gc(),将-DisableExplicitGC, 改成+DisableExplicitGC即为启用,默认为启用

-XX:+UseParallelGC 启用并行回收,多CPU有效,默认是不启用。

-XX:+UseParNewGC 启用并行收集(不是回收),也是多CPU有效。

-XX:NewSize=128m 新域的初始化尺寸。

-XX:MaxNewSize=128m 新创建的对象都是在Eden中,在-client中默认为640K,而-server中默认是2M

-XX:PerSize=64m 设置永久域的初始化大小,在WEBLOGIC中默认的尺寸应该是48M,一般够用,可以根据实际情况作相应条调整

-XX:MaxPerSize=64m 设置永久域的最大尺寸

另外还可以设置按照区域的比例进行设置操作,以及设置线程、缓存、页面大小等等操作。

3、-XX开头的几个监控信息:
-XX:+GITime 显示有多少时间花在编译代码代码上,这部分为运行时编译为对应机器码时间

-XX:+PrintGC 打印垃圾回收的基本信息

-XX:+PrintGCTimeStamps 打印垃圾回收时间戳信息

-XX:+PrintGCDetails 打印垃圾回收的详细信息

-XX:+TraceClassLoading 跟踪类的加载

-XX:+TraceClassResolution 跟踪常量池

-XX:+TraceClassUnLoading 跟踪类卸载

Why does the memory usage increase when I redeploy a web application?

That is because your web application has a memory leak.

A common issue are "PermGen" memory leaks. They happen because the Classloader (and the Class objects it loaded) cannot be recycled unless some requirements are met (*). They are stored in the permanent heap generation by the JVM, and when you redeploy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually.

(*) The requirement is that all classes loaded by this classloader should be able to be gc'ed at the same time.

JVM 常用配置的更多相关文章

  1. HotSpot JVM 常用配置设置

    本文讨论的选项是针对HotSpot虚拟机的. 1.选项分类及语法 HotspotJVM提供以下三大类选项: 1.1.标准选项 这类选项的功能是很稳定的,在后续版本中也不太会发生变化. 运行java或者 ...

  2. JVM常用配置参数说明

    堆设置 -Xms256M:初始堆大小256M,默认为物理内存的1/64 -Xmx1024M:最大堆大小1024M,默认为物理内存的1/4,等于与-XX:MaxHeapSize=64M -Xmn64M: ...

  3. HotSpot JVM常用参数设置

    转自:https://www.zybuluo.com/jewes/note/57352 选项的分类 Hotspot JVM提供以下三大类选项: 1. 标准选项:这类选项的功能是很稳定的,在后续版本中也 ...

  4. JBOSS最大连接数配置和jvm内存配置

    一.调整JBOSS最大连接数. 配置deploy/jboss-web.deployer/server.xml文件 .       <Connector         port="80 ...

  5. Gradle基本知识点与常用配置

    查看原文:http://blog.csdn.net/u010818425/article/details/52268126 本文篇幅较长,文中系统地讲解了Gradle的基本知识点以及一些常用的命令和配 ...

  6. Tomcat记录-tomcat常用配置详解和优化方法(转载)

    常用配置详解 1 目录结构 /bin:脚本文件目录. /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载). /conf:存放配置文件,最重要的是serv ...

  7. [转]logback常用配置简介

    logback是一套日志框架,由log4j的优化版,由同一个作者开发,在速度和性能上都超过其他日志框架,再结合slf4j,已成为当前最流行的日志框架. Logback最常用就是在classpath定义 ...

  8. HotSpot JVM常用参数(选项)设置

    本文讨论的选项是针对HotSpot虚拟机的. 1.选项分类及语法 HotspotJVM提供以下三大类选项: 1.1.标准选项 这类选项的功能是很稳定的,在后续版本中也不太会发生变化. 运行java或者 ...

  9. 深入理解JVM一配置参数

    一.JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 二.跟踪参数 跟踪参数用于跟踪监控JVM,往往被开发人 ...

随机推荐

  1. BZOJ1105 : [POI2007]石头花园SKA

    考虑把所有石头翻到直线y=x同侧,此时可以保证篱笆长度最短. 这种最短的篱笆一共有4种可能,枚举每种可能然后$O(n)$检验求出答案即可. #include<cstdio> const i ...

  2. ZOJ 3626(树形DP+背包+边cost)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3626 题目大意:树中取点.每过一条边有一定cost,且最后要回 ...

  3. 20145315 《Java程序设计》实验三实验报告

    实验三 敏捷开发与XP实践 实验内容 下载并学会使用git上传代码: 与同学结对,相互下载并更改对方代码,并上传: 实现代码的重载. 实验步骤 下载并用git上传代码: 1.下载并安装好git,在cm ...

  4. object-c cocos2d-x 写程序时注意调试的技巧

    (1)写程序时最好在类的init函数中显示类名,表明现在在执行哪个类,样例代码 CCLOG(@"cocos2d: Using Director Type:%@", [self cl ...

  5. 【wikioi】2800 送外卖(状压dp+floyd)

    http://www.wikioi.com/problem/2800/ 本题状压莫名其妙的tle了,(按照hzwer大神打的喂,他1000多ms,我就2000ms了?) (14.8.7更,将getnu ...

  6. 【BZOJ】1085: [SCOI2005]骑士精神(A*启发式搜索)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1085 囧啊囧,看了题解后写了个程序,但是样例总过不了T+T,调试了不下于1个小时,肉眼对拍看了根本看 ...

  7. NSString 处理技巧:分割字符串

    摘要 string类型是objective-c中用的最多的类型之一,有时会出现字符串中有我们不想要的字符. 如 "hello world"中的空格,或是"hello/wo ...

  8. C++ 'dynamic_cast' and Java 'instanceof' 使用对比

    在Java中,如果A是基类,B是A的派生类,那么instanceof可以用来判断一个实例对象是A还是B,相当于一个二元操作符,但与==, >, < 不同的是,它是由字母组成,是Java的保 ...

  9. select @@identity的用法

    用select @@identity得到上一次插入记录时自动产生的ID 如果你使用存储过程的话,将非常简单,代码如下:SET @NewID=@@IDENTITY 说明: 在 一条 INSERT.SEL ...

  10. 两个List,第二个List根据第一个List排序

    /// <summary> /// 协同排序 /// </summary> /// <param name="sod"></param&g ...