zoukankan      html  css  js  c++  java
  • JVM 调优

    -Xms    -Xmx        配置一样,一般情况为最大内存的80%

    -XX:NewSize          新生代初始大小    -XX:MaxNewSize   新生代最大大小  一般情况为整个堆1/3比较合适

    -Xmn         新生代内存大小 一般配合-XX:SurvivorRatio使用, 和

    -XX:NewRatio=n         设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

    -XX:SurvivorRatio=n  年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5

     1)新生代设置过小    GC次数非常频繁,增大系统消耗;二是导致大对象直接进入旧生代,占据了旧生代剩余空间,诱发Full GC
    
     2)新生代设置过大   会导致旧生代过小(堆总量一定),从而诱发Full GC;二是新生代GC耗时大幅度增加

     -XX:PermSize -XX:MaxPermSize=n  设置持久代大小(JDK1.8舍弃, 使用元空间)

     -XX:MetaspaceSize -XX:MaxMetaspaceSize 设置元空间

    垃圾收集器

     https://blog.csdn.net/wfh6732/article/details/57422967?utm_source=itdadao&utm_medium=referral

    -XX:MetaspaceSize=8m -XX:MaxMetaspaceSize=80m

     1G内存 常用配置JDK1.8

     并发收集器,以响应时间优先

    JAVA_OPTS="-server -Xms768m -Xmx768m -Xmn125m -XX:SurvivorRatio=8 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xss128K -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:+UseFastAccessorMethods
    -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0"

      并行收集器, 以吞吐量优先, 建议用此方式

    JAVA_OPTS="-server -Xms768m -Xmx768m -Xmn125m -XX:SurvivorRatio=8 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Xss128K 
    -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=1 -XX:MaxGCPauseMillis=100 -XX:+UseParallelOldGC
    -XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=/tmp/dump.log"

      -XX:+DisableExplicitGC  禁用System.gc(),  如果应用中使用了java nio中的direct memory,那么使用-XX:+DisableExplicitGC一定要小心,存在潜在的内存泄露风险

      -XX:+UseParallelGC 

      -XX:MaxGCPauseMillis=100  设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。

      -XX:ParallelGCThreads=1    配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。

      可通过  cat /proc/cpuinfo| grep "processor"| wc -l  查看逻辑CPU个数,

      -XX:+UseParallelOldGC         配置年老代垃圾收集方式为并行收集

      -XX:+UseAdaptiveSizePolicy   设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使      用并行收集器时,一直打开

      -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=/tmp/dump.log  设置dump文件

    G1收集器

    Windows 亲测, 本人本地用的是jdk1.7, 打开JConsole控制台

     JDK1.7   1.4G 内存配置

    JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xmn125m -XX:SurvivorRatio=8 -XX:PermSize=170m -XX:MaxPermSize=340m -Xss128K -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=1 -XX:MaxGCPauseMillis=100 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=/tmp/dump.log"

    参考https://www.cnblogs.com/zhangfengshi/p/11343102.html

    -server -Xms2G -Xmx2G -Xmn512m
    -XX:SurvivorRatio=6 -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Xss256K -XX:-XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:MaxGCPauseMillis=100 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log

  • 相关阅读:
    Android入门之旅1—ubuntu11.04上搭建And​roid SDK开发环境
    Android入门之旅3—ubuntu11.4上通过adb连接M9手机
    HTML页面的控件的显示与隐藏
    Javascript所属document对象使用细说(转载)
    php备份和恢复mysql数据库
    VB.net 代码 调用外部Ping命令判断网络连通状况
    面向对象技术第一讲 多态性
    无法在Web服务器上启动调试。未将项目配置为进行调试
    (PHP,mysql)Fatal error: Call to undefined function mysql_connect() 解决方案
    left join inner 使用细节
  • 原文地址:https://www.cnblogs.com/eason-d/p/9264330.html
Copyright © 2011-2022 走看看