zoukankan      html  css  js  c++  java
  • jvm 常用的参数 和 命令

    官方文档地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

     本随笔总结来自于尚硅谷官方视频: https://www.bilibili.com/video/BV1PJ411n7xZ


     

    参数


     

     1 参数  https://www.bilibili.com/video/BV1PJ411n7xZ?p=81

    • -XX:+PrintFlagsInitial  : 查看所有的参数的默认初始值
    • -XX:+PrintFlagsFinal : 查看所有的参数最终值(可能会存在修改,不再是初始值)
    • -XX:+UseCompressedClassPointers : 使用压缩的类指针,可以减少类的大小
    • -XX:+CompressedClassSpaceSize : 设置压缩类空间的大小
    • -XX:MetaspaceSize=32M -XX:MaxMetaspaceSize=32M 设置元空间的内存大小 
    • -XX:+UnlockExperimentalVMOptions  解锁实验参数
    • -XX:+UnlockDiagnosticVMOptions  解锁诊断参数
    • -XX:InitialCoCacheSize : 设置codecache大小
    • -XX:ReservedCodeCacheSize: 设置codecache最大值
    • jinfo -flag SurvivorRatio 进程id : 查询具体某个进程的某个参数的值,进程id可以使用jps获得
    • -Xms=100m : 初始堆控件内存(默认为物理内存的 1/64)
    • -Xmx=100m : 最大堆内存(默认为物理机的1/4)
    • -Xmn=80m : 设置新生代的大小(初始值和最大值)
    • -XX:metaspaceSize : 设置元空间的内存大小
    • -XX:MaxMetaspaceSize : 设置元控件最大内存
    • -XX:NewRatio=2 :  配置新生代与老年代在堆结构的占比,2的意思是 新生代大小/老年代大小 为  2/1
    • -XX:SurvivorRatio=8  : 设置新生代中Eden和S0/S1控件的比例,默认为8,8的意思是 Eden/s0/S1 为 8/1/1
    • -XX:MaxTenuringThreshold=15 : 设置新生代垃圾的最大年龄
    • -XX:+PrintGCDetails : 输出详细的GC处理日志
    • -Xloggc:/usr/local/gc.log :gc 日志保存的路径
    • -verbose:gc : 同上  
    • -XX:+PrintGC : 输出简要GC日志
    • -XX:+UseG1GC : 使用g1垃圾收集器
    • -XX:HandlePromotionFailure:  是否设置空间分配担保,此参数在jdk6 update24之后失效, 规则变更如下

    空间分配担保的意思是,在发生minor gc之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间

    如果大于,此次minor gc是安全的,

    如果小于,则虚拟机会查看此参数是否允许担保失败,

    如果为true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代对象的平均大小,

    如果大于,则尝试进行一次minor gc,但是这次gc依然是有风险的,

    如果小于,则改为进行一次full gc

    如果为false,直接进行一次full gc

    在jdk6 update24之后规则变为 只要老年代的连续空间大于新生代对象的总大小,或者 历次晋升的平均大小就会进行minor gc,否则将进行full gc

    • -XX:+HeapDumpOnOutOfMemoryError  当发生内存溢出时,自动保存对内存的对象占用文件,   -XX:HeapDumpPath=./  内存文件保存的位置

     

     2 命令  https://docs.oracle.com/javase/8/docs/technotes/tools/

    • jstat -class pid 查看类加载信息
    • jstat -complier pid 查看类编译信息
    • jstat -gc pid 查看jvm内存信息  jstat -gc 689 100 10  打印jvm内存信息, 没100毫秒打印一次,总共打印十次 
    • jstat -printcompliation pid 查看jit编译信息
    • jmap -dump:format=b,file=heap.hprof  pid  打印内存占用文件,用于在发生内存溢出时导出内存文件,
    • jstack pid > ssss.txt  打印进程的线程运行情况,一般用于排查服务器cpu负载过高,和线程死锁问题,jps打印出来的pid是十六进制需要转换成十进制,然后到导出的文件中排查
  • 相关阅读:
    LinuxShell脚本攻略--第八章 当个好管家
    LinuxShell脚本攻略--第六章 B计划
    LinuxShell脚本攻略--第三章 以文件之名
    LinuxShell脚本攻略--第二章 命令之乐
    LinuxShell脚本攻略--第一章 小试牛刀
    TCP/IP 与OSI结构图
    网络号和主机号的计算
    IP地址分类及私网IP
    转:Cache相关
    原码 反码 补码 移码
  • 原文地址:https://www.cnblogs.com/xiaodu9499/p/13265058.html
Copyright © 2011-2022 走看看