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


目录
相关文章
|
16天前
|
Arthas 监控 Java
JVM进阶调优系列(9)大厂面试官:内存溢出几种?能否现场演示一下?| 面试就那点事
本文介绍了JVM内存溢出(OOM)的四种类型:堆内存、栈内存、元数据区和直接内存溢出。每种类型通过示例代码演示了如何触发OOM,并分析了其原因。文章还提供了如何使用JVM命令工具(如jmap、jhat、GCeasy、Arthas等)分析和定位内存溢出问题的方法。最后,强调了合理设置JVM参数和及时回收内存的重要性。
|
15天前
|
监控 Java 编译器
Java虚拟机调优实战指南####
本文深入探讨了Java虚拟机(JVM)的调优策略,旨在帮助开发者和系统管理员通过具体、实用的技巧提升Java应用的性能与稳定性。不同于传统摘要的概括性描述,本文摘要将直接列出五大核心调优要点,为读者提供快速预览: 1. **初始堆内存设置**:合理配置-Xms和-Xmx参数,避免频繁的内存分配与回收。 2. **垃圾收集器选择**:根据应用特性选择合适的GC策略,如G1 GC、ZGC等。 3. **线程优化**:调整线程栈大小及并发线程数,平衡资源利用率与响应速度。 4. **JIT编译器优化**:利用-XX:CompileThreshold等参数优化即时编译性能。 5. **监控与诊断工
|
25天前
|
存储 监控 Java
JVM进阶调优系列(8)如何手把手,逐行教她看懂GC日志?| IT男的专属浪漫
本文介绍了如何通过JVM参数打印GC日志,并通过示例代码展示了频繁YGC和FGC的场景。文章首先讲解了常见的GC日志参数,如`-XX:+PrintGCDetails`、`-XX:+PrintGCDateStamps`等,然后通过具体的JVM参数和代码示例,模拟了不同内存分配情况下的GC行为。最后,详细解析了GC日志的内容,帮助读者理解GC的执行过程和GC处理机制。
|
2月前
|
Arthas 监控 数据可视化
JVM进阶调优系列(7)JVM调优监控必备命令、工具集合|实用干货
本文介绍了JVM调优监控命令及其应用,包括JDK自带工具如jps、jinfo、jstat、jstack、jmap、jhat等,以及第三方工具如Arthas、GCeasy、MAT、GCViewer等。通过这些工具,可以有效监控和优化JVM性能,解决内存泄漏、线程死锁等问题,提高系统稳定性。文章还提供了详细的命令示例和应用场景,帮助读者更好地理解和使用这些工具。
|
2月前
|
监控 架构师 Java
JVM进阶调优系列(6)一文详解JVM参数与大厂实战调优模板推荐
本文详述了JVM参数的分类及使用方法,包括标准参数、非标准参数和不稳定参数的定义及其应用场景。特别介绍了JVM调优中的关键参数,如堆内存、垃圾回收器和GC日志等配置,并提供了大厂生产环境中常用的调优模板,帮助开发者优化Java应用程序的性能。
|
2月前
|
Java
JVM进阶调优系列(5)CMS回收器通俗演义一文讲透FullGC
本文介绍了JVM中CMS垃圾回收器对Full GC的优化,包括Stop the world的影响、Full GC触发条件、GC过程的四个阶段(初始标记、并发标记、重新标记、并发清理)及并发清理期间的Concurrent mode failure处理,并简述了GC roots的概念及其在GC中的作用。
|
2月前
|
存储 安全 Java
jvm 锁的 膨胀过程?锁内存怎么变化的
【10月更文挑战第3天】在Java虚拟机(JVM)中,`synchronized`关键字用于实现同步,确保多个线程在访问共享资源时的一致性和线程安全。JVM对`synchronized`进行了优化,以适应不同的竞争场景,这种优化主要体现在锁的膨胀过程,即从偏向锁到轻量级锁,再到重量级锁的转变。下面我们将详细介绍这一过程以及锁在内存中的变化。
38 4
|
14天前
|
Java Linux Windows
JVM内存
首先JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制。
14 1
|
2月前
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
70 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
2月前
|
存储 缓存 算法
JVM核心知识点整理(内存模型),收藏再看!
JVM核心知识点整理(内存模型),收藏再看!
JVM核心知识点整理(内存模型),收藏再看!