zoukankan      html  css  js  c++  java
  • JVM启动参数建议

    JVM启动参数建议如下:

    -server -Xmx8000M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:PrintHeapAtGC

    java启动参数共分为三类;

    其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;

    其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;

    其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;

    -server                                   ## 服务器模式,不配置默认是-client,一定要作为第一个参数

    -Xms2g                                  ## 初始化堆内存大小

    -Xmx2g                                  ## 堆内存最大值

    -Xmn256m                             ## 年轻代内存大小

    -XX:PermSize=256m               ## 永久代初始值, 默认是物理内存的1/64

    -XX:MaxPermSize=256m          ## 永久代最大值,默认是物理内存的1/4。建议分别设置为128、512

    -XX:NewRatio=3                      ## 表示年轻代与年老代的比值,去掉-Xmn这个参数后,默认使用这个参数,比如为3,则新生代占堆的1/4,年老代占3/4。

    -XX:+UseParNewGC                                   ## 对年轻代采用多线程并行回收

    -XX:+UseConcMarkSweepGC                      ## 对年老代采用并发标记清除(CMS)收集器

    -XX:+CMSParallelRemarkEnabled                ## 启用并行标记,降低标记停顿

    -XX:+ScavengeBeforeFullGC                       ## FullGC前回收年轻代内存,默认开启

    -XX:+CMSScavengeBeforeRemark               ## CMS remark前回收年轻代内存

    -XX:+UseCMSInitiatingOccupancyOnly         ## 使用设定的回收阈值(下面指定的70%)开始CMS收集,如果不指定,JVM仅在第一次使用设定值,后续则自动调整

    -XX:CMSInitiatingOccupancyFraction=70      ## 使用cms作为垃圾回收使用70%后开始CMS收集

    -XX:+UseCMSCompactAtFullCollection          ## Full GC后会进行内存碎片整理、压缩

    -XX:CMSFullGCsBeforeCompaction=0           ## 设置在几次CMS垃圾收集后,触发一次内存整理

    -XX:+PrintGCApplicationConcurrentTime       ##  打印每次垃圾回收前,程序未中断的执行时间

    -XX:+PrintGCApplicationStoppedTime           ##  打印垃圾回收期间程序暂停的时间。

    -XX:PrintHeapAtGC                                      ##  打印GC前后的详细堆栈信息

    -XX:+HeapDumpOnOutOfMemoryError       ##  当OOM发生时自动生成 Heap Dump 文件

    -XX:+HeapDumpBeforeFullGC                    ##  当 JVM 执行 FullGC 前执行 dump

    -XX:+HeapDumpAfterFullGC                       ##  当 JVM 执行 FullGC 后执行 dump

    -XX:+HeapDumpOnCtrlBreak                      ##  交互式获取dump。在控制台按下快捷键Ctrl + Break时,JVM就会转存一下堆快照。

    -XX:HeapDumpPath=c: est.hprof                ##  指定 dump 文件存储路径

    内存溢出的三种类型:
    1.第一种OutOfMemoryError: PermGen space,发生这种问题的原意是程序中使用了大量的jar或class
    2.第二种OutOfMemoryError: Java heap space,发生这种问题的原因是java虚拟机创建的对象太多
    3.第三种OutOfMemoryError:unable to create new native thread,创建线程数量太多,占用内存过大
  • 相关阅读:
    关于plsql表如何创建自增长列
    逻辑运算符号,赋值运算符,关系运算符
    运算符和自增自减
    其他进制的数字
    数据强转
    JS基本数据类型
    学习进度条
    第14天
    第13 天
    课堂作业05
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/13406891.html
Copyright © 2011-2022 走看看