性能调优篇 二、Jvm监控及诊断工具-命令行篇

这篇具有很好参考价值的文章主要介绍了性能调优篇 二、Jvm监控及诊断工具-命令行篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

性能诊断是软件工程师在日程生活中需要经常面对和解决的问题

Java作为最流行的编程语言之一,其应用性能诊断一直收到业内广泛关注。造成Java应用出现性能问题的因素非常多,例如线程控制,磁盘读写,数据库访问,网络io,垃圾收集等。想要定位这些问题,一款优秀的性能诊断工具必不可少。

1、简单命令行工具

jdk的bin目录下,有一系列的辅助命令行工具,这些辅助工具用来获取 Jvm不同方面,不同层次的信息,帮助开发人员很好的解决Java应用程序的一些疑难杂症。例如 jinfo 、jconsole、javap …

二、jps:查看正在运行的Java程序(掌握)

1、是什么?

Java Process Status:用于查询正在运行的Java虚拟机进程

2、测试

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

3、基本语法

1)options
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
如何将信息输出到同级文件中:
语法:命令 > 文件名称
例如:jps -l > a.txt

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

三、jstat:查看jvm统计信息(掌握)

1、是什么?

jstat (JVM statistics Monitor tool ): 用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据

在没有GUI的图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期间定位虚拟机性能问题的首选工具,常用于检测垃圾回收问题以及内存泄漏问题

2、基本语法

基本语法: 使用jstat查看语法格式

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

其中vmid是进程id号,也就是jps之后看到的前面的号码,如下:
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

1)options参数
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

  • -gc
    性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
    其中S0C代表幸存者0区的总容量,
    S1C代表幸存者1区的总容量,
    S0U代表幸存者0区使用的容量,
    S1U代表幸存者1区使用的容量,
    EC代表伊甸园区的总容量,
    EU代表伊甸园区使用的总容量,
    OC代表老年代的总容量,
    OU代表老年代已经使用的容量,
    MC代表方法区的总容量,
    MU代表方法区的总容量,
    CCSC代表压缩类的总容量,
    CCSU代表压缩类使用的容量,
    YGC代表年轻代垃圾回收的次数,
    YGCT年轻代进行垃圾回收需要的时间,
    FGC代表代表Full GC的次数,
    FGCT代表Full GC的时间,
    GCT代表垃圾回收的总时间

  • -gccapacity举例:jstat -gccapacity 13152,其中13152代表类的进程id,执行结果如下:
    性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
    其中S0C代表幸存者0区的容量,
    S1C代表幸存者1区的容量,
    EC代表伊甸园区的容量,
    CCSC代表压缩类的容量,
    YGC代表年轻代垃圾回收的时间,
    FGC代表Full
    GC垃圾回收的时间


  • gcutil举例:jstat -gcutil 13152,其中13152代表类的进程id,执行结果如下所示:
    性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
    以上是各区域占比以及垃圾回收的情况,
    S0代表幸存者0区,
    S1代表幸存者1区,
    E代表伊甸园区,
    O代表老年代,
    M代表方法区,
    CCS代表压缩类,以上这些值都是占比情况
    YGC代表年轻代垃圾回收的次数,
    YGCT年轻代进行垃圾回收需要的时间,
    FGC代表代表Full GC的次数,
    FGCT代表Full GC的时间,
    GCT代表垃圾回收的总时间

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

2)-t 参数
可以在输出信息前加上一个 TimeStamp列,显示程序的运行时间。单位秒

【经验】
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
jstat -gc -t 35812 1000
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
如果让左边框框中的某两个值相减,假设这个值是num1,然后让对应右边框框中的另外两个值相减,假设这个值是num2,之后让num2/num1,得出的差值就是上述所说的GC时间占运行时间的比例

3)-h
可以在周期性数据输出时,输出多少行数据后输出一个表头信息

4)interval 参数
用于指定输出统计数据的周期,单位为毫秒秒(查询间隔)

5)count 参数
用于指定查询的总次数

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

3、补充

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm



四、jinfo:实时查看和修改JVM配置参数

1、是什么?

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

2、基本语法

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

查看
jinfo -flags 进程id
查看曾经赋过值的一些参数
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

jinfo -flag 参数名称 进程id
查看某个java进程的具体参数信息
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

修改
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

针对boolean类型:jinfo -flag [+|-]参数名称 进程id
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

针对非boolean类型: jinfo -flag 参数名称=参数值 进程id
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

3、拓展

java -XX:+PrintFlagsInitial 查看所有JVM参数启动的初始值
java -XX:+PrintFlagsFinal 查看所有JVM参数的最终值



五、jmap:导出内存映像文件 & 内存使用情况

1、是什么?

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

2、基本语法

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
使用语法可以通过在DOS窗口中使用jmap/jmap -h/jmap -help查看

<executable 代表可执行的代码,比如使用> 文件名称来指定生成的dump文件的生成位置

[server_id@]<……>是为远程连接准备的

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm



3、使用

1)导出内存映像文件

手动

jmap -dump:format=b,file=xxx.hprof pid

jmap -dump:live,format=b,file=xxx.hprof pid  【基本使用这个】

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

自动

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=xxx.hprof

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm


2、显示堆内存相关信息

jmap -heap 进程id
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

jmap -histo 进程id
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm



4、小结

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm



六、jhat (不使用了)

1、是什么?

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

2、基本语法

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm



七、jstack 打印Jvm的线程快照

1、是什么

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

2、基本语法

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm

参数:option:
性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm



八、jcmd 多功能命令行



九、jstatd 远程主机信息收集

性能调优篇 二、Jvm监控及诊断工具-命令行篇,# Jvm,jvm
demo:
https://blog.csdn.net/huanqingdong/article/details/104095402/文章来源地址https://www.toymoban.com/news/detail-668767.html

到了这里,关于性能调优篇 二、Jvm监控及诊断工具-命令行篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • JVM调优篇:探索Java性能优化的必备种子面试题

    首先面试官会询问你在进行JVM调优之前,是否了解JVM内存模型的基础知识。这是一个重要的入门问题。JVM内存模型主要包括程序计数器、堆、本地方法栈、Java栈和方法区(1.7之后更改为元空间,并直接使用系统内存)。 正常堆内存又分为年轻代和老年代。在Java虚拟机中,年

    2024年02月15日
    浏览(47)
  • JVM性能监控之命令行工具全解

    性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。 Java作为最流行的编程语言之一,其应用性能诊断一直受到业界的广泛关注,可能造成Java应用出现性能问题的因素非常多,例如线程控制、

    2023年04月08日
    浏览(32)
  • JVM监控及诊断工具大全

    jconsole:从Java5开始,在JDK中自带的java监控和管理控制台。用于对JVM中内存、线程和类等的监控,是一个基于JMX(java management extensions)的GUI性能监控工具。 官方地址:https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html Visual VM是一个功能强大的多合一故障诊断和性能

    2024年02月08日
    浏览(31)
  • 数据库监控与调优【七】—— MySQL数据库诊断命令

    TIPS 本文基于MySQL 8.0,理论支持MySQL 5.0及更高版本。 本文整理了常用的MySQL诊断命令,可以帮助我们了解数据库的运行情况。 作用: SHOW [FULL] PROCESSLIST用于查看当前正在运行的线程。如果执行此命令的用户拥有 PROCESS 权限,则可看到所有线程;否则只能看到自己的线程(即与

    2024年02月11日
    浏览(39)
  • 【Jvm】性能调优(拓展)Jprofiler如何监控和解决死锁、内存泄露问题

    Jprofilers是针对Java开发的 性能分析工具(免费试用10天) , 可以对Java程序的 内存,CPU,线程,GC,锁 等进行监控和分析 , 本人IDEA版本是 2020.2.2 ,选择的Jprofiler版本是 12.0 (早期的版本是纯英文的, 12.0支持中文 ,安装主要考虑是否与IDEA插件兼容即可) 进入Jprofiler官网下载 - Jprofiler 版本这

    2024年02月19日
    浏览(37)
  • MySQL性能调优篇(4)-查询语句的优化与重构

    MySQL是一种常用的关系型数据库管理系统,广泛应用于Web开发中。在实际应用中,对数据库查询语句的优化和重构是提高应用性能和响应速度的重要手段。本文将介绍一些常见的优化技巧和重构方法,帮助开发者提高数据库查询效率。 优化索引 索引是数据库中存储数据位置的

    2024年02月19日
    浏览(38)
  • 【Jvm】性能调优(上)线上问题排查工具汇总

    产品闭环 产品闭环是能够让 用户主动迭代促进产品发展的方式 。例如一些内容产品,比如 糗事百科 ,种子用户 产出高质量内容 ,举报与赞起到 筛选内容 ,提高内容质量的作用, 内容质量的提升有助于吸引更多用户 。 这就是产品闭环, 产品给予用户需求解决方法,用户

    2024年02月20日
    浏览(33)
  • MySQL性能调优篇(8)-NoSQL与MySQL的比较

    MySQL数据库是一种关系型数据库,而NoSQL是一种非关系型数据库。它们在数据存储和处理方式、数据模型和可扩展性等方面存在一些明显的差异。本文将对MySQL数据库和NoSQL进行比较,并介绍它们的优势和劣势。 首先,MySQL使用表格的形式来存储数据,采用一对多的关系,并且

    2024年02月19日
    浏览(26)
  • JVM监控和调优常用命令jps|jstat|jinfo|jmap|jhat|jstack实战

    性能优化 :通过JVM调优,可以提高Java应用程序的性能,减少响应时间,提高吞吐量,以更好地满足用户需求。性能优化可以加快应用程序的执行速度,减少延迟,提高用户体验。 内存管理 :JVM负责管理Java应用程序的内存。正确的内存管理可以避免内存泄漏和内存溢出等问

    2024年02月09日
    浏览(30)
  • JVM 性能监控与故障处理工具

    基础工具 jps:虚拟机进程状态工具 jps 命令格式: jps [options] [hostid] 命令可选项解释: 选项 解释 -q 只输出 LVMID,省略主类的名称 -m 输出传给 main 函数的参数 -l 输出主类的全名,如果进程运行的 JAR 包,则输出 JAR 包的路径 -v 输出虚拟机进程启动时的 JVM 参数 jstat:虚拟机统

    2024年02月07日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包