JVM参数调优基础-参数的类型详解(上)

简介: JVM参数调优基础-参数的类型详解(上)

1 参数类型

1.1 标准参数

-help

-server -client

-version -showversion

-cp -classpath

1.2 X 参数

  • 非标准化参数
  • -Xint :解释执行
  • -Xcomp :第一次使用就编译成本地代码
  • -Xmixed :混合模式, JVM自己来决定是否编译成本地代码
  • JDK8默认混合模式

image.png

1.3 XX 参数

  • 非标转化参数,相对不稳定,主要用于JVM调优和Debug


Boolean类型

  • 格式:
    -XX:[±]表示启用或者禁用name属性,比如:
    -XX:+ UseConcMarkSweepGC
    -XX:+UseG1GC


非 Boolean类型

  • 格式:
    -XX: <name> = <value>表示name属性的值是value
    比如:
    -XX:MaxGCPauseMilis=500
    XX:GCTimeRatio=19


注意,-Xmx -Xms不是X参数,而是XX参数

-Xms等价于-XX:InitialHeapSize

-Xmx等价于-XX:MaxHeapSize

2 运行时参数


-XX:+ PrintFlagsInitial

-XX:+ PrintFlagsFinal

-XX: +UnlockExperimentalVMOptions 解锁实验参数

-XX: + UnlockDiagnosticVMOptions 解锁诊断参数

-XX:+ PrintCommandLineFlags 打印命令行参数


查看XX选项的值

  • -XX:+PrintCommandLineFlags
  • -XX:+PrintFlagsInitial -XX:+PrintFlagsFinal

1.png

  • =表示默认值
  • :=被用户或者JVM修改后的值


jps

image.png

image.png

jinfo

  • 查看最大内存
jinfo -flag MaxHeapSize 1430
-XX:MaxHeapSize=1073741824

image.png

  • 查看垃圾收集器
➜  ~ jinfo -flag UseConcMarkSweepGC 1430
-XX:-UseConcMarkSweepGC

image.png

  • 查看回收次数阈值
➜  ~ jinfo -flag MaxTenuringThreshold 58064
-XX:MaxTenuringThreshold=15

image.png

3 jstat

查看JVM统计信息

3.1 类装载


image.png

3.2 GC

-gc, -gcutil, -gccause, -gcnew, -gcold


image.png

-gc输出结果

S0C、S1C、SOU、 S1∪ : S0和S1的总量与使用量

EC、EU : Eden区总量与使用量

OC、OU : Old区总量与使用量

MC、MU : Metaspace区总量与使用量

CCSC、CCSU :压缩类空间总量与使用量

YGC、YGCT : YoungGC的次数与时间

FGC、FGCT : FulIGC的次数.与时间

GCT :总的GC时间


JIT 编译

  • -compiler
  • -printcompilation

image.png


目录
相关文章
|
6月前
|
消息中间件 运维 监控
加一个JVM参数,让系统可用率从95%提高到99.995%
本文针对一个高并发(10W+ QPS)、低延迟(毫秒级返回)的系统因内存索引切换导致的不稳定问题,深入分析并优化了JVM参数配置。通过定位问题根源为GC压力大,尝试了多种优化手段:调整MaxTenuringThreshold、InitialTenuringThreshold、AlwaysTenure等参数让索引尽早晋升到老年代;探索PretenureSizeThreshold和G1HeapRegionSize实现索引直接分配到老年代;加速索引复制过程以及升级至JDK11使用ZGC。
630 82
加一个JVM参数,让系统可用率从95%提高到99.995%
|
12月前
|
监控 Java 编译器
Java虚拟机调优指南####
本文深入探讨了Java虚拟机(JVM)调优的精髓,从内存管理、垃圾回收到性能监控等多个维度出发,为开发者提供了一系列实用的调优策略。通过优化配置与参数调整,旨在帮助读者提升Java应用的运行效率和稳定性,确保其在高并发、大数据量场景下依然能够保持高效运作。 ####
289 58
|
11月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
JVM内存参数
-Xmx[]:堆空间最大内存 -Xms[]:堆空间最小内存,一般设置成跟堆空间最大内存一样的 -Xmn[]:新生代的最大内存 -xx[use 垃圾回收器名称]:指定垃圾回收器 -xss:设置单个线程栈大小 一般设堆空间为最大可用物理地址的百分之80
|
Arthas 监控 Java
JVM进阶调优系列(9)大厂面试官:内存溢出几种?能否现场演示一下?| 面试就那点事
本文介绍了JVM内存溢出(OOM)的四种类型:堆内存、栈内存、元数据区和直接内存溢出。每种类型通过示例代码演示了如何触发OOM,并分析了其原因。文章还提供了如何使用JVM命令工具(如jmap、jhat、GCeasy、Arthas等)分析和定位内存溢出问题的方法。最后,强调了合理设置JVM参数和及时回收内存的重要性。
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
400 1
|
监控 Java 编译器
Java虚拟机调优实战指南####
本文深入探讨了Java虚拟机(JVM)的调优策略,旨在帮助开发者和系统管理员通过具体、实用的技巧提升Java应用的性能与稳定性。不同于传统摘要的概括性描述,本文摘要将直接列出五大核心调优要点,为读者提供快速预览: 1. **初始堆内存设置**:合理配置-Xms和-Xmx参数,避免频繁的内存分配与回收。 2. **垃圾收集器选择**:根据应用特性选择合适的GC策略,如G1 GC、ZGC等。 3. **线程优化**:调整线程栈大小及并发线程数,平衡资源利用率与响应速度。 4. **JIT编译器优化**:利用-XX:CompileThreshold等参数优化即时编译性能。 5. **监控与诊断工
|
6月前
|
Arthas 存储 算法
深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器
JVM全称是Java Virtual Machine-Java虚拟机JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行类的生命周期概述:类的生命周期描述了一个类加载,使用,卸载的整个过类的生命周期阶段:类的声明周期主要分为五个阶段:加载->连接->初始化->使用->卸载,其中连接中分为三个小阶段验证->准备->解析类加载器的定义:JVM提供类加载器给Java程序去获取类和接口字节码数据类加载器的作用:类加载器接受字节码文件。
653 55
|
1月前
|
存储 缓存 Java
我们来说一说 JVM 的内存模型
我是小假 期待与你的下一次相遇 ~
215 4