精华内容
下载资源
问答
  • WAS JVM参数说明

    2021-01-14 15:27:29
    “初始堆大小”设置指定 JVM 启动时分配给 JVM 堆的存储量(以兆字节为单位)。“最大堆大小”设置指定 JVM 启动时可分配给 JVM 堆的最大存储量(以兆字节为单位)。两种设置都对性能产生重大影响。如果要调整某个生产...

    在初始堆大小或最大堆大小字段中指定新值。

    如果需要同时调整这两项设置,也可以对这两个字段都指定值。

    为进行性能分析,初始堆大小和最大堆大小应该相等。

    “初始堆大小”设置指定 JVM 启动时分配给 JVM 堆的存储量(以兆字节为单位)。“最大堆大小”设置指定 JVM 启动时可分配给 JVM 堆的最大存储量(以兆字节为单位)。两种设置都对性能产生重大影响。

    如果要调整某个生产系统但不知道在该系统上运行的企业应用程序工作集大小,那么初始堆大小的适宜启动值是最大堆大小的 25%。然后,JVM 尝试使堆大小适应应用程序的工作集大小。

    以下插图表示三个 CPU 概要文件,每个概要文件都以不同 Java 堆设置运行固定工作负载。在中间的概要文件中,初始堆大小和最大堆大小都设置为 128 MB。发生四次垃圾回收。垃圾回收的总时间大约是运行总时间的 15%。当堆参数加倍为 256 MB 时(如在顶部的概要文件中所示),在两次垃圾回收之间的工作时间长度会增加。仅发生三次垃圾回收,但每次垃圾回收的工作时间长度也会增加。在第三个概要文件中,堆大小减少为 64 MB 而且会显示出相反的效果。使用较小的堆大小,两次垃圾回收之间的时间和每次垃圾回收的时间也会较短。 对于所有三种配置,垃圾回收的总时间大约是 15%。此示例说明有关 Java 堆及其与对象利用率的关系的重要概念。运行企业应用程序时,垃圾回收的开销始终存在。

    运行一系列使用不同 Java 堆设置的测试。例如,运行使用 128 MB、192 MB、256 MB 和 320 MB 的试验。在每次实验期间,监视全部内存使用情况。如果您对堆扩展太多,那么可能发生页面调度。

    使用 vmstat 命令或 Windows 性能监视器检查页面调度。如果发生页面调度,那么减少堆大小或将更多的内存添加到系统。

    当所有运行都完成时,比较以下各统计信息:

    垃圾回收调用次数

    一次垃圾回收调用的平均持续时间

    一次垃圾回收调用的工作时间长度和两次垃圾回收调用之间的平均时间之间的比率

    如果应用程序不是过度使用的对象而且没有内存泄漏,那么达到了稳定内存利用率的状态。垃圾回收也不会频繁发生,而且持续时间短。

    如果堆可用空间稳定在 85% 或更多,那么考虑降低堆大小的最大值,这是因为应用程序服务器和应用程序未充分利用为堆分配的内存。

    展开全文
  • was JVM参数设置

    千次阅读 2021-01-14 15:27:25
    设置部署完毕以后 访问部署的系统日志提示的错误如下 [12-2-22 20:26:12:252 CST] 00000026 ...JVM参数设置 -Dais.home=d:ais -Xgcpolicy:gencon-Dfile.encoding=GBK 设置是不是有问题?提示这个错误望高人指点

    设置部署完毕以后 访问部署的系统日志提示的错误如下

    [12-2-22 20:26:12:252 CST] 00000026 ServletWrappe I   SRVE0242I: [cas_war] [/cas] [cas]: 初始化成功。

    [12-2-22 20:26:12:252 CST] 00000026 VirtualHost   I   SRVE0250I: Web 模块 Central Authentication System (CAS) 3.0 已绑定到 default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443]。

    [12-2-22 20:26:12:252 CST] 00000026 ApplicationMg A   WSVR0221I: 应用程序已启动:cas_war

    [12-2-22 20:26:14:283 CST] 00000026 ApplicationMg A   WSVR0200I: 正在启动应用程序:crpt_war

    [12-2-22 20:26:14:283 CST] 00000026 ApplicationMg A   WSVR0204I: 应用程序:crpt_war 应用程序构建级别:未知

    [12-2-22 20:26:14:518 CST] 00000026 WebGroup      A   SRVE0169I: 正在装入 Web 模块:CELL REPORT。

    [12-2-22 20:26:14:908 CST] 00000026 WebApp        A   SRVE0180I: [crpt_war#crpt.war] [/crpt] [Servlet.LOG]: Initializing Spring root WebApplicationContext

    [12-2-22 20:26:15:565 CST] 00000026 SystemOut     O crpt初始化ais.properties错误d:ais-Xgcpolicy:gencon-Dfile.encoding=GBKais.properties (文件名、目录名或卷标语法不正确。)

    [12-2-22 20:26:15:737 CST] 00000026 SystemOut     O 2012-02-22 20:26:15,565 ERROR [org.springframework.web.context.ContextLoader] - org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'propertyConfigurer' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)

    at java.security.AccessController.doPrivileged(AccessController.java:214)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)

    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)

    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:515)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:362)

    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)

    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)

    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)

    at com.ibm.ws.wswebcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:605)

    at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:265)

    at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:271)

    at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:8

    ais.properties文件存放位置在 D盘 ais文件夹中所以

    JVM参数设置

    -Dais.home=d:ais -Xgcpolicy:gencon-Dfile.encoding=GBK

    设置是不是有问题?提示这个错误望高人指点

    展开全文
  • was使用及参数设置

    2018-01-04 20:40:56
    was使用及参数设置 was使用及参数设置 was使用及参数设置
  • JVM 参数设置

    2021-03-15 02:17:34
    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是...

    0818b9ca8b590ca3270a3433284dd417.png

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的GC种类也会不同(如何选择见GC种类及如何选择)。本文将注重介绍JVM、GC的一些重要参数的设置来提高系统的性能。

    JVM内存组成及GC相关内容请见之前的文章:JVM内存组成 GC策略&内存申请。

    JVM参数的含义实例见实例分析

    参数名称

    含义

    默认值

    -Xms

    初始堆大小

    物理内存的1/64(<1GB)

    默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.

    -Xmx

    最大堆大小

    物理内存的1/4(<1GB)

    默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制

    -Xmn

    年轻代大小(1.4or lator)

    注意:

    整个堆大小=年轻代大小 + 年老代大小

    增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8

    -XX:NewSize

    设置年轻代大小(for 1.3/1.4)

    -XX:MaxNewSize

    年轻代最大值(for 1.3/1.4)

    -XX:PermSize

    设置持久代(perm gen)初始值

    物理内存的1/64

    -XX:MaxPermSize

    设置持久代最大值

    物理内存的1/4

    -Xss

    每个线程的堆栈大小

    JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右

    一般小的应用, 如果栈不是很深, 应该是128k够用的 大的应用建议使用256k。这个选项对性能影响比较大,需要严格的测试。(校长)

    和threadstacksize选项解释很类似,官方文档似乎没有解释,在论坛中有这样一句话:"”

    -Xss is translated in a VM flag named ThreadStackSize”

    一般设置这个值就可以了。

    -XX:ThreadStackSize

    Thread Stack Size

    (0 means use default stack size) [Sparc: 512; Solaris x86: 320 (was 256 prior in 5.0 and earlier); Sparc 64 bit: 1024; Linux amd64: 1024 (was 0 in 5.0 and earlier); all others 0.]

    -XX:NewRatio

    年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)

    -XX:NewRatio=4表示年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

    Xms=Xmx并且设置了Xmn的情况下,该参数不需要进行设置。

    -XX:SurvivorRatio

    Eden区与Survivor区的大小比值

    设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10

    -XX:LargePageSizeInBytes

    内存页的大小不可设置过大, 会影响Perm的大小

    =128m

    -XX:+UseFastAccessorMethods

    原始类型的快速优化

    -XX:+DisableExplicitGC

    关闭System.gc()

    这个参数需要严格的测试

    -XX:MaxTenuringThreshold

    垃圾最大年龄

    如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代. 对于年老代比较多的应用,可以提高效率.如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活 时间,增加在年轻代即被回收的概率

    该参数只有在串行GC时才有效.

    -XX:+AggressiveOpts

    加快编译

    -XX:+UseBiasedLocking

    锁机制的性能改善

    -Xnoclassgc

    禁用垃圾回收

    -XX:SoftRefLRUPolicyMSPerMB

    每兆堆空闲空间中SoftReference的存活时间

    1s

    softly reachable objects will remain alive for some amount of time after the last time they were referenced. The default value is one second of lifetime per free megabyte in the heap

    -XX:PretenureSizeThreshold

    对象超过多大是直接在旧生代分配

    0

    单位字节 新生代采用Parallel Scavenge GC时无效

    另一种直接在旧生代分配的情况是大的数组对象,且数组中无外部引用对象.

    -XX:TLABWasteTargetPercent

    TLAB占eden区的百分比

    1%

    -XX:+CollectGen0First

    FullGC时是否先YGC

    false

    GC性能方面的考虑

    对于GC的性能主要有2个方面的指标:吞吐量throughput(工作时间不算gc的时间占总的时间比)和暂停pause(gc发生时app对外显示的无法响应)。

    1. Total Heap

    默认情况下,vm会增加/减少heap大小以维持free space在整个vm中占的比例,这个比例由MinHeapFreeRatio和MaxHeapFreeRatio指定。

    一般而言,server端的app会有以下规则:

    对vm分配尽可能多的memory;

    将Xms和Xmx设为一样的值。如果虚拟机启动时设置使用的内存比较小,这个时候又需要初始化很多对象,虚拟机就必须重复地增加内存。

    处理器核数增加,内存也跟着增大。

    2. The Young Generation

    另外一个对于app流畅性运行影响的因素是young generation的大小。young generation越大,minor collection越少;但是在固定heap size情况下,更大的young generation就意味着小的tenured generation,就意味着更多的major collection(major collection会引发minor collection)。

    NewRatio反映的是young和tenured generation的大小比例。NewSize和MaxNewSize反映的是young generation大小的下限和上限,将这两个值设为一样就固定了young generation的大小(同Xms和Xmx设为一样)。

    如果希望,SurvivorRatio也可以优化survivor的大小,不过这对于性能的影响不是很大。SurvivorRatio是eden和survior大小比例。

    一般而言,server端的app会有以下规则:

    首先决定能分配给vm的最大的heap size,然后设定最佳的young generation的大小;

    如果heap size固定后,增加young generation的大小意味着减小tenured generation大小。让tenured generation在任何时候够大,能够容纳所有live的data(留10%-20%的空余)。

    经验&&规则

    年轻代大小选择

    响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择).在此种情况下,年轻代收集发生的频率也是最小的.同时,减少到达年老代的对象.

    吞吐量优先的应用:尽可能的设置大,可能到达Gbit的程度.因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用.

    避免设置过小.当新生代设置过小时会导致:1.YGC次数更加频繁 2.可能导致YGC对象直接进入旧生代,如果此时旧生代满了,会触发FGC.

    年老代大小选择

    响应时间优先的应用:年老代使用并发收集器,所以其大小需要小心设置,一般要考虑并发会话率和会话持续时间等一些参数.如果堆设置小了,可以会造成内存碎 片,高回收频率以及应用暂停而使用传统的标记清除方式;如果堆大了,则需要较长的收集时间.最优化的方案,一般需要参考以下数据获得:

    并发垃圾收集信息、持久代并发收集次数、传统GC信息、花在年轻代和年老代回收上的时间比例。

    吞吐量优先的应用:一般吞吐量优先的应用都有一个很大的年轻代和一个较小的年老代.原因是,这样可以尽可能回收掉大部分短期对象,减少中期的对象,而年老代尽存放长期存活对象.

    较小堆引起的碎片问题

    因为年老代的并发收集器使用标记,清除算法,所以不会对堆进行压缩.当收集器回收时,他会把相邻的空间进行合并,这样可以分配给较大的对象.但是,当堆空间较小时,运行一段时间以后,就会出现"碎片",如果并发收集器找不到足够的空间,那么并发收集器将会停止,然后使用传统的标记,清除方式进行回收.如果出现"碎片",可能需要进行如下配置:

    -XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩.

    -XX:CMSFullGCsBeforeCompaction=0:上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩

    用64位操作系统,Linux下64位的jdk比32位jdk要慢一些,但是吃得内存更多,吞吐量更大

    XMX和XMS设置一样大,MaxPermSize和MinPermSize设置一样大,这样可以减轻伸缩堆大小带来的压力

    使用CMS的好处是用尽量少的新生代,经验值是128M-256M, 然后老生代利用CMS并行收集, 这样能保证系统低延迟的吞吐效率。 实际上cms的收集停顿时间非常的短,2G的内存, 大约20-80ms的应用程序停顿时间

    系统停顿的时候可能是GC的问题也可能是程序的问题,多用jmap和jstack查看,或者killall -3 java,然后查看java控制台日志,能看出很多问题。(相关工具的使用方法将在后面的blog中介绍)

    仔细了解自己的应用,如果用了缓存,那么年老代应该大一些,缓存的HashMap不应该无限制长,建议采用LRU算法的Map做缓存,LRUMap的最大长度也要根据实际情况设定。

    采用并发回收时,年轻代小一点,年老代要大,因为年老大用的是并发回收,即使时间长点也不会影响其他程序继续运行,网站不会停顿

    JVM参数的设置(特别是 –Xmx –Xms –Xmn -XX:SurvivorRatio  -XX:MaxTenuringThreshold等参数的设置没有一个固定的公式,需要根据PV old区实际数据 YGC次数等多方面来衡量。为了避免promotion faild可能会导致xmn设置偏小,也意味着YGC的次数会增多,处理并发访问的能力下降等问题。每个参数的调整都需要经过详细的性能测试,才能找到特定应用的最佳配置。

    java.lang.StackOverflowError:(很少)

    java.lang.OutOfMemoryError:heap space(比较常见)

    java.lang.OutOfMemoryError: PermGen space (经常出现)

    java.lang.OutOfMemoryError: PermGen space 这个异常比较常见,是说JVM里的Perm内存区的异常溢出,由于JVM在默认的情况下,Perm默认为64M,而很多程序需要大量的Perm区内存,尤其使用到像spring等框架的时候,由于需要使用到动态生成类,而这些类不能被GC自动释放,所以导致OutOfMemoryError: PermGen space异常。解决方法很简单,增大JVM的 -XX:MaxPermSize 启动参数,就可以解决这个问题

    java.lang.OutOfMemoryError:heap space或 其它OutOfMemoryError,这个异常实际上跟上面的异常是一个异常,但解决方法不同,所以分开来写。上面那个异常是因为JVM的perm区内存区分少了引起的(JVM的内存区分为 young,old,perm三种)。而这个异常是因为JVM堆内存或者说总体分少了。解决方法是更改 -Xms -Xmx 启动参数,通常是扩大1倍。xms是管理启动时最小内存量的,xmx是管里JVM最大的内存量的

    在单线程操作中,无论是栈深度无限增加,还是栈帧(每个方法调用执行时都会在栈中创建一个栈帧,用来存储局部变量,操作数栈,动态链表,方法出口等信息)占的空间太大,都出现的是StackOverflowError

    展开全文
  • 目录1、标准参数2、X 参数3、XX参数①、Boolean类型②、Key-Value类型4、参数详解(持续更新)JVM参数有很多,其实我们直接使用默认的JVM参数,不去修改都可以满足大多数情况。但是如果你想在有限的硬件资源下,部署的...

    目录

    1、标准参数

    2、X 参数

    3、XX参数

    ①、Boolean类型

    ②、Key-Value类型

    4、参数详解(持续更新)

    JVM参数有很多,其实我们直接使用默认的JVM参数,不去修改都可以满足大多数情况。但是如果你想在有限的硬件资源下,部署的系统达到最大的运行效率,那么进行相关的JVM参数设置是必不可少的。下面我们就来对这些JVM参数进行详细的介绍。

    JVM参数主要分为以下三种(可以根据书写形式来区分):

    回到顶部

    1、标准参数

    标准参数,顾名思义,标准参数中包括功能以及输出的结果都是很稳定的,基本上不会随着JVM版本的变化而变化。

    我们可以通过 -help 命令来检索出所有标准参数。

    182a2a586d46e2990daf658ec31a9bd3.png

    关于这些命令的详细解释,可以参考官网:https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html

    -help 也是一个标准参数,再比如使用比较多的 -version也是。

    ①、-version

    显示Java的版本信息。

    eb1c0a3fd184ee6d111721460a645ff0.png

    回到顶部

    2、X 参数

    对应前面讲的标准化参数,这是非标准化参数。表示在将来的JVM版本中可能会发生改变,但是这类以 -X开始的参数变化的比较小。

    我们可以通过 Java -X 命令来检索所有-X 参数。

    74f4621e17cda583ff877daba9cea247.png

    关于这些参数的介绍,其实上图的中文解释很清楚了,这里我们不作过多的介绍。

    回到顶部

    3、XX参数

    这是我们日常开发中接触到最多的参数类型。这也是非标准化参数,相对来说不稳定,随着JVM版本的变化可能会发生变化,主要用于JVM调优和debug。

    注意:这种参数是我们后续介绍JVM调优讲解最多的参数。

    该参数的书写形式又分为两大类:

    ①、Boolean类型

    格式:-XX:[+-] 表示启用或者禁用name属性。

    例子:-XX:+UseG1GC(表示启用G1垃圾收集器)

    ②、Key-Value类型

    格式:-XX:= 表示name的属性值为value。

    例子:-XX:MaxGCPauseMillis=500(表示设置GC的最大停顿时间是500ms)

    回到顶部

    4、参数详解(持续更新)

    本节我们会持续更新罗列一些JVM参数。

    1、打印已经被用户或者当前虚拟机设置过的参数

    -XX:+PrintCommandLineFlags

    比如:

    2cc8d683b55b9d413ddfc10d40375159.png

    2、最大堆和最小堆内存设置

    -Xms512M:设置堆内存初始值为512M

    -Xmx1024M:设置堆内存最大值为1024M

    这里的ms是memory start的简称,mx是memory max的简称,分别代表最小堆容量和最大堆容量。但是别看这里是-X参数,其实这是-XX参数,等价于:

    -XX:InitialHeapSize

    -XX:MaxHeapSize

    在通常情况下,服务器项目在运行过程中,堆空间会不断的收缩与扩张,势必会造成不必要的系统压力。所以在生产环境中,JVM的Xms和Xmx要设置成一样的,能够避免GC在调整堆大小带来的不必要的压力。

    3、Dump异常快照以及以文件形式导出

    -XX:+HeapDumpOnOutOfMemoryError

    -XX:HeapDumpPath

    堆内存出现OOM的概率是所有内存耗尽异常中最高的,出错时的堆内信息对解决问题非常有帮助,所以给JVM设置这个参数(-XX:+HeapDumpOnOutOfMemoryError),让JVM遇到OOM异常时能输出堆内信息,并通过(-XX:+HeapDumpPath)参数设置堆内存溢出快照输出的文件地址,这对于特别是对相隔数月才出现的OOM异常尤为重要。

    这两个参数通常配套使用:

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.dump

    4、发送OOM后,执行一个脚本

    -XX:OnOutOfMemoryError

    比如这样设置:

    -XX:OnOutOfMemoryError="C:\Program Files\Java\jdk1.8.0_152\bin\jconsole.exe"

    表示发生OOM后,运行jconsole.exe程序。这里可以不用加“”,因为jconsole.exe路径Program Files含有空格。

    利用这个参数,我们可以在系统OOM后,自定义一个脚本,可以用来发送邮件告警信息,可以用来重启系统等等。

    5、打印gc信息

    ①、打印GC简单信息

    -verbose:gc

    -XX:+PrintGC

    一个是标准参数,一个是-XX参数,都是打印详细的gc信息。通常会打印如下信息:

    757d7719288ee7616cd4fb163d8794f6.png

    比如第一行,表示GC回收之前有12195K的内存,回收之后剩余1088K,总共内存为125951K

    ②、打印详细GC信息

    -XX:+PrintGCDetails

    -XX:+PrintGCTimeStamps

    919eca907aff9ab3cb1289c8c86a2d31.png

    6、指定GC日志以文件输出

    -Xloggc:./gc.log

    这个在参数用于将gc日志以文件的形式输出,更方便我们去查看日志,定位问题。

    7、设置永久代大小

    -XX:MaxPermSize=1280m

    在JDK1.7以及以前的版本中,只有Hotspot 才有Perm区,称为永久代,它在启动时固定大小,很难进行调优。

    在某些情况下,如果动态加载类过多,容易产生Perm区的 OOM。比如某个实际 Web 工程中,因为功能点较多,在运行过程中,要不断动态加载很多类,就会出现类似错误:

    “Exception in thread ‘dubbo client x.x.connect’ java.lang.OutOfMemoryError:PermGenspace”

    为了解决这个问题,就需要在项目启动时,设定运行参数-XX:MaxPermSize。

    注意:在JDK1.8以后面的版本,使用元空间来代替永久代。在 JDK1.8以及后面的版本中,如果设定参数-XX:MaxPermSize,启动JVM不会报错,但是会提示:

    Java Hotspot 64Bit Server VM warning:ignoring option MaxPermSize=1280m:support was removed in 8.0

    8、垃圾收集器常用参数

    a009ddb31914c59876f47bfed11a0f79.png

    b6431da159187cbeecc573fdaddcf8ee.png

    参考文档:https://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

    https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html

    展开全文
  • websphere8.5部署war包,设置JVM参数

    万次阅读 2018-11-19 10:12:58
    WebSphere Application Server(简称WAS)是IBM的应用服务器 基本结构:单元(cell) ——&gt; 多个节点(node) ——&gt; 多个服务(server) ——&gt; 多个应用(app) 单元是整个分布式网络中一个或多个节点的...
  • 服务器——>所有服务器——>server1(服务器名)——>服务器基础结构——>java和进程管理——>进程定义——>java虚拟机——>通用jvm参数
  • 我经常会这样来设置服务器端的JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k" -server:一定要作为第一个参数,在多个CPU时性能佳 -Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些 -Xmx:...
  • 格式 以-D开头,多个jvm运行参数 用空格隔开 -Dproperty=Value 例如-Dfile.encoding=UTF-8 -Dspring.profiles.active=dev 注意: 1、如果-Dproperty=value的value中包含空格,可以将value使用引号引起来。例如...
  • 一、tomcat Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。...需要把这个两个参数值调大。例如: JAVA_OPTS=’-Xms256m -Xmx512m’ 表示初始化内存为256MB,.
  • 设置参数以支持中文字符集 路径:服务器——应用程序服务器——server1——进程定义——Java 虚拟机: 通用JVM参数=-Dfile.encoding=GBK -Ddefault.client.encoding=GBK...
  • 转自...utm_medium=toutiao.io&utm_source=toutiao.io JVM常用参数选项 jvm 可配置的参数选项可以参考 Oracle 官方网站给出的相关信息:http://www.oracle.c...
  • Java jvm所有参数以及关于jvm调优

    千次阅读 2020-02-18 13:30:24
    参数汇总 一、java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现...其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是非St...
  • 1.Websphere JVM相关问题诊断: 由JVM引起的Websphere问题主要有应用服务器宕机和性能下降,JVM相关问题的特征如下: (1).Websphere应用服务器停止响应: a.Websphere服务器宕机。 b.Websphere进程挂起。 c.JVM内存...
  • Web应用系统部署在WAS(Websphere Application Server)
  • jconsole是JDK里自带的一个工具,可以监测Java...使用jconsole工具来分析WASJVM问题,需要进行相关的配置。首先我们看WAS服务器端的配置.1、登录was控制台https://10.4.119.18:9043/ibm/console/,找到自己的应用...
  • 今天将在WAS的控制台的JAVA虚拟机进行了参数调整,调整如下: 进入was控制台-> 1. 在was控制台中单击服务器 > 应用程序服务器 2. 单击选择所需应用程序服务器,本机为server1...6. 通用 JVM 参数字段中输入...
  • >java和 进程管理-->进程定义--> JAVA 虚拟机-->初始堆大小、最大堆大小-->保存 中文字符乱码: JVM参数: -Ddefault.client.encoding=GBK -Dclient.encoding.override=GBK -Dfile.encoding=GBK -Duser.language=zh ...
  • JVM常用参数选项 &nbsp; jvm 可配置的参数选项可以参考 Oracle 官方网站给出的相关信息:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html&nbsp; 下面只列举其中的几个常用和...
  • JVM3-JVM配置参数

    2018-08-18 23:42:19
    配置多个jvm参数用 空格隔开. java -version cmd&amp;gt; java -version C:\Users\bob&amp;gt;java -version java version &quot;1.8.0_92&quot; Java(TM) SE Runtime Environment (build ...
  • 3.4.1. 通用属性(高亮的是重点) Attribute Description allowTrace A boolean value which can be used to enable or disable the TRACE HTTP method. If not specified, this attribute is set to false. ...
  • JVM常用参数选项 配置参数 功能 -Xms 初始堆大小。如:-Xms256m -Xmx 最大堆大小。如:-Xmx512m -Xmn 新生代大小。通常为 Xmx 的 1/3 或 1/4。新生代 = Eden + 2 个 Survivor 空间。实际可用空间为 = ...
  • 9. JVM常用参数

    2020-04-06 12:02:49
    JVM 常用参数1 常用参数1.1 内存相关参数1.1.1 参数说明1.1.2 参数内存关系图1.2 GC调优参数1.2.1 基础参数1.2.2 并行回收器相关参数1.2.3 CMS 回收器相关参数1.2.4 G1 回收器相关参数2 官网资料2.1 官网地址2.2 ...
  • Java是通过java虚拟机来装载和执行编译文件(class文件)的,java虚拟机通过命令java -option 来启动,-option为虚拟机参数,通过这些参数可对虚拟机的运行状态进行调整。 官网 官网文档:...
  • WAS性能优化

    千次阅读 2018-12-04 08:37:59
    1、JVM堆大小配置 登录WAS控制台:   修改初始堆大小,与最大堆大小。这里根据机器性能调整,通常情况下,机器资源是足够的,因此请调整为: 1536至3072  或者直接修改server.xml文件 /was/IBM/WebSphere/...
  • java jvm及gc参数设置

    2019-10-01 10:20:27
    通用类 package lddxfs.jvm.gclog; import java.util.HashMap; import java.util.Map; /** * Author:lddxfs(lddxfs@qq.com;https://www.cnblogs.com/LDDXFS/) * Date:2018/10/15 */ public cla...
  • WAS的一些重要调优参数

    千次阅读 2015-05-27 09:39:28
    在着手进行应用程序服务器的优化之前,首先进行应用程序和操作系统的优化是...对于一般的J2EE应用程序而言,WAS中最重要的优化参数包括针对JVM、Web Container和Data Source等的。 JVM Heapsize(-Xms和-Xmx):
  • JVM故障处理工具,使用总结

    千次阅读 2021-01-14 09:30:00
    但在当前阶段可能真的用不上,JVM是一个稳定服务,哪能天天出问题,哪需要你老排查。又不是像你写的代码那样! 可是知识的学习就是把你垫基到更高层次后,才有机会接触更有意思的工作和技术创新。如果只是单纯的学几...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,826
精华内容 1,130
关键字:

was通用jvm参数