zoukankan      html  css  js  c++  java
  • JVM参数

    # java可执行文件位置
    export JAVA_HOME=/data/jdk
    # 设置项目代码路径
    export CODE_HOME="/data/webserver/cgi-startup-package"
    # 日志路径
    export LOG_PATH="/data/webserver/logs/cgi.senyint.local"
    mkdir -p $LOG_PATH
    # 设置依赖路径
    export CLASSPATH="$CODE_HOME/classes:$CODE_HOME/lib/*"
    # java可执行文件位置
    export _EXECJAVA="$JAVA_HOME/bin/java"
    # JVM启动参数
    # 打印参数
    FLAG_OPTS="-XX:+PrintCommandLineFlags"
    # 内存参数
    MEMORY_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -XX:MaxDirectMemorySize=2048m -XX:PermSize=256m -XX:MaxPermSize=512m"
    # 性能参数
    # -XX:+PerfDisableSharedMem: 解决: JVM statistics cause garbage collection pauses, 导致: jps, jstat不可用
    PERFORMANCE_OPTS="-XX:-UseBiasedLocking -XX:-UseCounterDecay -XX:+AlwaysPreTouch -XX:AutoBoxCacheMax=20000 -XX:ReservedCodeCacheSize=240m"
    # GC CMS参数
    CMS_GC_OPTS="-XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:MaxTenuringThreshold=6 -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled"
    # GC 日志参数
    GC_OPTS="-Xloggc:/dev/shm/cgi-gc.log -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails"
    # 异常参数
    ERROR_OPTS="-XX:-OmitStackTraceInFastThrow -XX:ErrorFile=${LOG_PATH}/hs_err_%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_PATH}/"
    # JMX
    JMX_PORT="18888"
    JMX_OPTS="-Dcom.sun.management.jmxremote.port=${JMX_PORT} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1"
    export JAVA_OPTS="-server $FLAG_OPTS $MEMORY_OPTS $PERFORMANCE_OPTS $CMS_GC_OPTS $GC_OPTS $ERROR_OPTS $JMX_OPTS"
    # 启动类
    export MAIN_CLASS=com.senyint.cgi.startup.Bootstrap
    
    nohup $_EXECJAVA $JAVA_OPTS -classpath $CLASSPATH $MAIN_CLASS >/dev/null 2>&1 &
    GC
    
    -XX:+PrintGC   打印GC日志
    -XX:+PrintGCDetails   打印详细的GC日志
    -Xloggc:/var/gc.log   将GC日志打印在根目录的var文件夹下的gc.log文件中
    class
    
    -verbose:class   打印类加载和卸载信息
    堆内存
    
    -Xmx2048m   最大堆内存
    -Xms2048m   最小堆内存
    -Xmn512m   新生代内存
    -XX:SurvivorRatio   值为eden/from=eden/to
    -XX:+HeapDumpOnOutOfMemoryError   在内存溢出时导出整个堆信息
    -XX:HeapDumpPath=/var/heap.dump   指定导出堆的存放路径
    方法区
    
    -XX:PermSize=50m  方法区大小
    -XX:MaxPermSize=50m   方法区最大大小
    Metaspace
    
    -XX:MaxMetaspaceSize  指定元空间的大小,默认情况下,只受限于系统内存大小
    栈
    
    -Xss1m
    直接内存
    
    -XX:MaxDirectMemorySize   最大可用直接内存,默认最大值为-Xmx,直接内存使用量达到该值时,触发垃圾回收
    垃圾回收器
    
    -XX:UseSerialGC   使用serial/serial old垃圾回收器
    -XX:PrintGCApplicationStoppedTime:查看STW时间
    -XX:UseParNewGC   使用parNew/serial old
    -XX:ParallelGCThreads   parNew的GC线程数
    Parallel
    
    -XX:+UseParallelGC   使用Parallel Scavenge/serial Old
    -XX:+UseParallelOldGC   使用Parallel Scavenge/Parallel Old
    -XX:GCTimeRatio:直接设置吞吐量大小,假设设为19,则允许的最大GC时间占总时间的1/(1+19),默认值为99,即1/(1+99)
    -XX:MaxGCPauseMillis:最大GC停顿时间,该参数并非越小越好
    -XX:+UseAdaptiveSizePolicy:开启该参数,-Xmn/-XX:SurvivorRatio/-XX:PretenureSizeThreshold这些参数就不起作用了,虚拟机会自动收集监控信息,动态调整这些参数以提供最合适的的停顿时间或者最大的吞吐量(GC自适应调节策略),而我们需要设置的就是-Xmx,-XX:+UseParallelOldGC或-XX:GCTimeRatio两个参数就好(当然-Xms也指定上与-Xmx相同就好)
    CMS
    
    -XX:+UseConcMarkSweepGC   使用parNew/CMS
    -XX:CMSInitiatingOccupancyFraction   指定当年老代空间满了多少后进行垃圾回收。默认68,即68%
    -XX:+UseCMSCompactAtFullCollection   (默认是开启的)在CMS收集器顶不住要进行FullGC时开启内存碎片整理过程,该过程需要STW
    -XX:CMSFullGCsBeforeCompaction   指定多少次FullGC后才进行整理
    -XX:ParallelCMSThreads   指定CMS回收线程的数量,默认为:(CPU数量+3)/4
    -XX:+CMSPermGenSweepingEnabled与-XX:+CMSClassUnloadingEnabled   使用CMS进行方法区的回收
    G1
    
    -XX:+UseG1GC   使用G1
    对象进入年老代
    
    -XX:MaxTenuringThreshold=15   复制过15次后
    -XX:PretenureSizeThreshold=1000   大于1000字节的对象直接进入年老代
    JIT
    
    -XX:CounterHalfLifeTime   半衰周期
    -XX:CompileThreshold   默认server模式是10000,即在半衰周期内方法调用次数达到10000次,将该方法编译为机器码
    -XX:-UseCounterDecay   关闭上述机制,即半衰周期的无穷大
    -XX:OnStackReplacePercent   用于计算循环体执行的次数,server模式下通过该值算出来的回边数是10700,即循环体执行10700次时便以为机器码   
  • 相关阅读:
    (转) c/c++调用libcurl库发送http请求的两种基本用法
    (转)unordered_map与map的对比(C++11新特性)
    libevent简单介绍
    libevent入门
    日期转换成字符串
    LinkServer
    GridView小记
    SoapHeader
    Credential
    Notepad++ Emmet/Zen coding插件的安装
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/7155130.html
Copyright © 2011-2022 走看看