【JVM的相关参数和调优】

这篇具有很好参考价值的文章主要介绍了【JVM的相关参数和调优】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


JVM 调优的参数类型

一、标配参数

这类此参数在jdk的各个版本之间很少会变化,基本不改变

  1. java -version,查看当前电脑上的jdk的版本信息

【JVM的相关参数和调优】,jvm

  1. java -help,查看java命令的各种选项和参数

【JVM的相关参数和调优】,jvm

  1. java -showversion,相当于上述两者结合

【JVM的相关参数和调优】,jvm
4. jps,查看后台运行的 java 进程

public class Test {
    public static void main(String[] args) throws InterruptedException {
    	// 让该程序一致在后台
        Thread.sleep(Integer.MAX_VALUE);
    }
}

【JVM的相关参数和调优】,jvm
Test 的进程 id 为 29636

5. jinfo,通过进程 id 查看正在运行的 java 程序的参数信息

jinfo -flag 具体参数(XX参数) java进程编号(-flag,是一个进程号同时指定要查看的一个参数)
【JVM的相关参数和调优】,jvm
jinfo -flags java进程编号(-flags,是一个进程号所有的参数)
【JVM的相关参数和调优】,jvm


二、X参数

  1. java -Xint -vesion,解释执行模式

解释执行命令会告诉java虚拟机使用解释执行模式来执行程序。在解释执行模式下,Java程序的代码将逐行被解释器翻译成机器指令并执行。这种模式通常会导致程序执行速度较慢,但它可以在不同的平台上运行代码,因为不需要事先将代码编译成机器代码。

  1. java -Xcomp -version,第一次使用就编译成本地代码

编译执行命令会告诉java虚拟机在第一次执行程序时将代码编译成本地机器代码。这种模式下,Java程序的代码会被即时编译器翻译成机器指令,并保存下来以备下次执行使用。这样,在后续执行时,程序的执行速度会比解释执行模式下更快,因为代码已经被编译成机器代码。

  1. java - Xmixed -version,混合模式(JVM默认采用的模式)

混合模式命令会告诉java虚拟机在运行时根据程序的运行情况来选择解释执行或即时编译执行。在混合模式下,虚拟机会根据代码的热度来判断是否将其编译成机器代码。热度通常是通过代码的执行频率衡量的。因此,混合模式可以充分利用即时编译的性能优势,同时又能适应代码的动态性。

【JVM的相关参数和调优】,jvm


三、XX参数

1. Boolean 类型
公式:–XX:+或-某个属性(+表示开启,-表示关闭)
例如:-XX:+PrintGCDetails

2. K/V键值对类型

公式:-XX:某个Key=Value
例如:
-XX:MetaspaceSize=128m
-XX:MaxTenuringThreshold=15

K/V 类型中常常会有许多的简写形式
如:-Xms 等价于 -XX:InitialHeapSize=,. -Xmx 等价于 -XX:MaxHeapSize=


JVM 调优的常用参数

1. -Xms 等价于 -XX:InitialHeapSize=,初始大小内存,默认为物理内存的 1/ 64

2. -Xmx 等价于 -XX:MaxHeapSize=,最大分配内存,默认为物理内存的1 / 4

3. -Xss 等价于 -XX:ThreadStackSize=,设置单个线程栈的大小,一般默认为 512K~1024K(具体跟JVM所在的平台有关)

【JVM的相关参数和调优】,jvm

Window下 ThreadStackSize=0, 意思是使用的是默认值

4. -Xmn,设置年轻代的大小(只有简写,没有全称)

5. -XX:MetaspaceSize,设置元空间大小(元空间并不在虚拟机中,而是使用本地内存,因此会受本地内存大小的限制,OOM异常中就有java.lang.OutOfMemoryError: Metaspace)

6. -XX:+PrintGCDetails,输出GC收集日志的详细信息

【JVM的相关参数和调优】,jvm

GC 和 Full GC
【JVM的相关参数和调优】,jvm

7. -XX:SurvivorRatio,设置Survivo所占的比例,但总的新生代大小不变
Eden:S0:s1 = 8 : 1 : 1,即默认-XX:SurvivorRatio=8
Eden:S0:s1 = 4 : 1 : 1,即设置-XX:SurvivorRatio=4

8. -XX:NewRatio,配置新生代和老年代的比例
默认:-XX:NewRatio=2,新生代:老年代=1:2,新生代占整个堆的 1/3
假如:-XX:NewRatio=4,新生代:老年代=1:4,新生代占整个堆的 1/5

9. -XX:MaxTenuringThreshold,设置年轻代对象的最大年龄(即在Survivor中的复制轮数),超过这个次数要么进入老年代要么回收,范围[0, 15]

默认值为 15

【JVM的相关参数和调优】,jvm

10. -XX:+PrintFlagsInitial(查看 JVM 的默认配置,即 XX:K/V) 和 -XX:+PrintFlagsFinal(查看JVM当前的配置)

K = V,没有被修改过
K := V,被修改过

【JVM的相关参数和调优】,jvm

12. -XX:+PrintCommandLineFlags -version(查看默认的垃圾回收器的方式)

【JVM的相关参数和调优】,jvm文章来源地址https://www.toymoban.com/news/detail-798040.html

到了这里,关于【JVM的相关参数和调优】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JVM 11 调优指南:如何进行JVM调优,JVM调优参数

    JVM 11的优化指南:如何进行JVM调优,以及JVM调优参数有哪些”这篇文章将包含JVM 11调优的核心概念、重要性、调优参数,并提供12个实用的代码示例,每个示例都会结合JVM调优参数和Java代码 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,

    2024年01月16日
    浏览(54)
  • JVM 21 的调优指南:如何进行JVM调优,JVM调优参数

    聊聊关于JVM 21的优化指南。这篇文章将会深入探讨如何进行JVM调优,介绍一些关键的JVM调优参数,并提供12个实用的代码示例。由于篇幅较长,我会分几个部分来详细讲解,之前写的也有33篇系列教程JVM调优实战打击也可以去围观。 JVM(Java虚拟机)调优是一个复杂但重要的任

    2024年01月24日
    浏览(53)
  • JVM调优相关

    1.jvm中的一些工具 1.1 jps  jps 用于查看java进程运行情况,输出JVM中运行的进程状态信息 命令行参数如下: -m 输出传入main方法的参数 -l 输出main类或Jar的全限名 -v 输出传入JVM的参数    如上,bootstrap 就是tomcat进程,调用的main方法就是start方法(可以参考tomcat笔记) 1.2 jstack

    2024年02月11日
    浏览(34)
  • 【JVM】JVM 调优的参数都有哪些?

    设置堆的初始大小和最大大小,为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间, 通常把最大、初始大小设置为相同的值 。 堆空间设置多少合适? 最大大小的默认值是物理内存的1/4,初始大小是物理内存的1/64 堆太小,可能会频繁的导致年轻代和老

    2024年02月12日
    浏览(44)
  • JVM调优指令&参数

    常用命令查找文档站点:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html 输出所有参数的名称和默认值,默认不包括Diagnostic和Experimental的参数。可以配合  -XX:+UnlockDiagnosticVMOptions 和 -XX:UnlockExperimentalVMOptions 使用 注意: 这里列举出来的所有参数值,大体分为两类。一类

    2024年02月10日
    浏览(46)
  • 【jvm系列-13】jvm性能调优篇---参数设置以及日志分析

    JVM系列整体栏目 内容 链接地址 【一】初识虚拟机与java虚拟机 https://blog.csdn.net/zhenghuishengq/article/details/129544460 【二】jvm的类加载子系统以及jclasslib的基本使用 https://blog.csdn.net/zhenghuishengq/article/details/129610963 【三】运行时私有区域之虚拟机栈、程序计数器、本地方法栈 https

    2024年02月06日
    浏览(89)
  • JVM——配置常用参数,GC调优策略

    Java内存区域常见配置参数概览 堆参数; 回收器参数; 项目中常用配置; 常用组合; Java内存区域常见配置参数概览 堆参数 回收器参数 如上表所示,目前 主要有串行、并行和并发三种 ,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种。并行

    2024年02月12日
    浏览(42)
  • 【JVM】JVM垃圾回收GC相关参数说明

    -XX:+PrintCommandLineFlags : 输出JVM启动参数 -XX:+UseSerialGC :在新生代和老年代使用串行收集器 -XX:SurvivorRatio :设置eden区大小和survivior区大小的比例 -XX:NewRatio :新生代和老年代的比 -XX:+UseParNewGC :在新生代使用并行收集器 -XX:+UseParallelGC :新生代使用并行回收收集器 -XX:+UseParallelO

    2024年02月04日
    浏览(47)
  • Java线上故障排查(CPU、磁盘、内存、网络、GC)+JVM性能调优监控工具+JVM常用参数和命令

    根据服务部署和项目架构,从如下几个方面排查: (1)运用服务器:排查内存,cpu,请求数等; (2)文件图片服务器:排查内存,cpu,请求数等; (3)计时器服务器:排查内存,cpu,请求数等; (4)redis服务器:排查内存,cpu,连接数等; (5)db服务器:排查内存,cpu,连接数

    2024年02月07日
    浏览(67)
  • 触发JVM fatal error并配置相关JVM参数

    工作中,Java服务因为 fatal error (致命错误,笔者称其为 jvm crash ),在服务运行日志中出现了致命错误的概要信息: 服务运行在k8s中,由于未提前设置fatal error日志的路径(挂载到宿主机目录),容器重启后该日志会丢失,无法深入排查原因 因此,需要查询jvm的配置,将f

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包