zoukankan      html  css  js  c++  java
  • 深入JVM《三》 JVM常用配置参数

    一、Trace 跟踪参数

    1、打印GC的简要信息
    -verbose:gc
    -XX:+PrintGC
     
    2、打印GC详细信息
    -XX:+PrintGCDetails
    3、打印CG发生的时间戳
    -XX:+PrintGCTimeStamps
     
     
    4、指定GC log的位置,以文件输出
    -Xloggc:log/gc.log
     
     
    5、每次一次GC后,都打印堆信息
    -XX:+PrintHeapAtGC
     
     
    6、监控类的加载
    -XX:+TraceClassLoading
     
     
    7、按下Ctrl+Break后,打印类的信息。分别显示:序号、实例数量、总大小、类型
    -XX:+PrintClassHistogram
     
     
     
     

    二、堆的分配参数

    1、指定最大堆和最小堆
    -Xmx –Xms
    -Xmx20m -Xms5m  运行代码:
    System.out.print("Xmx=");
    System.out.println(Runtime.getRuntime().maxMemory()/1024.0/1024+"M");
    
    System.out.print("free mem=");
    System.out.println(Runtime.getRuntime().freeMemory()/1024.0/1024+"M");
    
    System.out.print("total mem=");
    System.out.println(Runtime.getRuntime().totalMemory()/1024.0/1024+"M");
     
     
    2、设置新生代大小
    -Xmn
     
     
    3、新生代(eden+2*s)和老年代(不包含永久区)的比值。
         4 表示 新生代:老年代=1:4,即年轻代占堆的1/5
    -XX:NewRatio
     
     
    4、设置两个Survivor区和eden的比(s0/s1区,或者叫from/to区,幸存区)
          8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10
    -XX:SurvivorRatio
     
    5、OOM时导出堆到文件
    -XX:+HeapDumpOnOutOfMemoryError
    6、导出OOM的路径(堆dump的时候放置的位置)
    -XX:+HeapDumpPath
    7、在OOM时,执行一个脚本
    -XX:OnOutOfMemoryError
    
    // %p 是当前线程的pid
    -XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p
    // 当程序OOM时,会执行脚本printstack.bat,如果脚本里写
    // D:/tools/jdk1.7_40/bin/jstack -F %1 > D:/a.txt   在D:/a.txt中将会生成线程的dump
    // 可以在OOM时,发送邮件,甚至是重启程序
    8、堆的分配参数总结
     
    a)、根据实际事情调整新生代和幸存代的大小
    官方推荐新生代占堆的3/8
    幸存代占新生代的1/10
    在OOM时,记得Dump出堆,确保可以排查现场问题
     
     
    三、永久区
     
    1、设置永久区的初始空间和最大空间。他们表示,一个系统可以容纳多少个类型
    -XX:PermSize  -XX:MaxPermSize
    堆空间实际占用非常少。但是永久区溢出 一样抛出OOM
    如果堆空间没有用完也抛出了OOM,有可能是永久区导致的
     
     
     
     
    四、栈的分配
    1、栈空间分配。
         通常只有几百K。决定了函数调用的深度。(会影响递归的次数)
        每个线程都有独立的栈空间
        局部变量、参数 分配在栈上
    -Xss
     

    文章源自微信公众号【刍荛采葑菲】,转载请注明。

  • 相关阅读:
    PHP5.4中新增的traits
    PHP各版本的区别
    冒泡排序原理
    服务器&linux
    PHP
    excel 导出
    try cache
    sql
    Linux下php安装Redis扩展
    Redis安装部署
  • 原文地址:https://www.cnblogs.com/churao/p/8494165.html
Copyright © 2011-2022 走看看