常用 JVM 调优工具

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

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~

JVM 日常调优总结起来就是:首先通过 jps 命令查看当前进程,然后根据 pid 通过 jinfo 命令查看和修改 jvm 参数,通过 jstat 命令查看 class 的加载信息以及 GC 信息,通过 jstack 命令查看线程堆栈信息,通过 jmap 命令查看堆内存信息。用以上的命令查看可以解决一些问题,但是对于 GC 日志以及 dump 文件不便于分析,因此下面介绍几个常用的图形化界面工具。

1

JDK 自带工具(jdk/bin 目录下)

常用 JVM 调优工具,jvm

1、jconsole

查看 java 应用程序的运行概览、监控堆信息,可以监控Java应用程序的内存使用情况、线程状态、CPU占用率等。

cmd 里输入 jconsole,或者 jdk/bin 目录下点击 jconsole.exe 打开 jconsole 工具,如下图:

常用 JVM 调优工具,jvm

可以对本地进程或者远程进程,连接之后可以进行 JVM 信息查看:

常用 JVM 调优工具,jvm

2、jvisualvm

jvisualvm 工具在 Java 内存模型章节介绍过了,它是一个免费的Java虚拟机监视、分析和调试工具,可以监控Java应用程序的内存使用情况、线程状态、CPU占用率,可以监控 java进程的 CPU、堆、类以及线程等情况。

常用 JVM 调优工具,jvm

点击线程Dump按钮,如下:

常用 JVM 调优工具,jvm

3、以上的工具可以通过远程连接 Linux 环境,进行远端 tomcat 监听

1、要想让服务器上的 tomcat 被连接,需要修改一下 tomcat 目录 bin/catalina.sh 文件中 JAVA_OPTS 参数,在参数后面添加以下内容:

cd usr/local/tomcat/tomcat-8/

-Dcom.sun.management.jmxremote.port=8989
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access 
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password

2、在 tomcat 目录 conf/ 文件中添加两个文件 jmxremote.access 和 jmxremote.password,一个是账号的权限,一个是账号密码,并给这 2 个文件授予可读写权限:

chmod -R 600 jmxremote.access

chmod -R 600 jmxremote.password

jvisualvm 连接远端 tomcat 进程:

1、在 jvisualvm 中选中“远程”,右键“添加”

2、主机名上写服务器的 ip 地址,比如 66.xxx.xxx.xxx,然后点击“确定”

3、右键该主机“66.xxx.xxx.xxx”,“添加 JMX 连接”,表示通过 JMX 技术连接远端服务器的 Java 进程

4、在“添加 JMX 连接”界面中“连接”里输入“66.xxx.xxx.xxx:8989”,勾选“使用安全凭证”,输入用户名和密码,点击确定进行远端连接。

2

Arthas 

常用 JVM 调优工具,jvm

Arthas是Alibaba开源的Java诊断工具。Arthas主要包含Command和IDE两种模式,同时也包含JDK和JVM调试、类信息、线程分析、系统信息、多线程诊断、GC分析、应用性能监控、堆栈分析、方法体分析、JVM参数调整、线上问题定位等功能。

下载arthas-boot.jar,然后用java -jar的方式启动:

curl -O https://arthas.aliyun.com/arthas-boot.jar

java -jar arthas-boot.jar

具体可参考:

https://github.com/alibaba/arthas

https://github.com/alibaba/arthas/blob/master/README_CN.md

3

Java堆分析器 MemoryAnalyzer(MAT)

常用 JVM 调优工具,jvm

Java堆分析器Memory Analyzer(MAT,Memory Analyzer Tool)是一种用于分析Java堆的强大工具。MAT是一个开源工具,可以与Eclipse集成使用,也可以作为独立的命令行工具使用。它由Java开发,可以在任何支持Java的平台上运行。

MAT的主要功能包括:

快速查找和比较不同heap dump文件。导出报告和分析结果,包括CSV、Excel、XML和HTML格式。

Eclipse 的 MAT 插件 MemoryAnalyzer 用于分析堆内存泄漏,下载地址:https://www.eclipse.org/mat/downloads.php。

常用 JVM 调优工具,jvm

下载以后解压,我们可以运行 mat 目录下的 MemoryAnalyzer.exe,用它打开 Heap Dump 文件,以便于我们进行分析堆内存泄漏问题,如下:常用 JVM 调优工具,jvm

Histogram:查看内存中的每个类的对象实例、对象的个数及其大小

Leak Suspects:查看内存泄漏的可能原因

Top Consumers:查看大对象

在类名上右键--->List Objects--->with incoming references 可以列出该类的实例,如下:常用 JVM 调优工具,jvm

在类名上右键--->Merge Shortest Paths to GC Roots--->exclude all phantom/weak/soft etc.references 可以看到 GC Root 以及没有垃圾回收的原因,如下:常用 JVM 调优工具,jvm

大家可以自己研究一下。

4

在线分析网站 perfma

常用 JVM 调优工具,jvm

官方网址:https://perfma.com

Java 虚拟机参数分析:https://club.perfma.com/topic/product-opts

Java 线程 Dump 分析:https://club.perfma.com/topic/product-thread

Java 内存 Dump 分析:https://club.perfma.com/topic/product-memory

大家可以自己研究一下。

5

GC 日志分析

常用 JVM 调优工具,jvm

通过以下命令开启 GC 日志打印,拿到 GC 日志以后,就可以用工具进行进一步地分析了。

-XX:+PrintGCDetails:打印 GC 详细信息

-XX:+PrintGCDateStamps:在每个 GC上打印日期戳

-XX:+PrintGCTimeStamps:在每个 GC 上打印时间戳

-Xloggc:指定 GC log 的位置和日志文件名称

在运行程序时,为了快速发生内存溢出,设置内存为 10M
-Xms10M -Xmx10M 


设置以下的参数,可以开启 GC 日志打印
-XX:+PrintGCDetails 
-XX:+PrintGCDateStamps 
-XX:+PrintGCTimeStamps 
-Xloggc:d:/dump/gc.log

GC 日志在线分析网站 gceasy:https://gceasy.io/

常用 JVM 调优工具,jvm

GC 日志本地分析工具 gcviewer:

具体可参考:https://github.com/chewiebug/GCViewer

下载地址:https://sourceforge.net/projects/gcviewer

双击下载的 gcviewer-1.37-SNAPSHOT.jar 文件可打开分析界面,选择 gc 日志文件打开即可,如下:

常用 JVM 调优工具,jvm

后面将为大家介绍 JVM 调优实例。文章来源地址https://www.toymoban.com/news/detail-635273.html

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

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

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

相关文章

  • JVM——配置常用参数,GC调优策略

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

    2024年02月12日
    浏览(42)
  • 常用调优命令及各种 OOM 的应对策略【JVM调优】

    ① jps:显示所有虚拟机进程; ② jstack:生成当前线程快照; ③ jmap:生成 dump 堆转储文件; ④ jhat:与 jmap 搭配使用,生成 dump 的分析结果; ⑤ jstat:监控虚拟机运行时的状态信息; ⑥ jinfo:实时查看和调整虚拟机运行参数。 ① -Xmx:设置堆内存的最大限制; ② -XX:NewS

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

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

    2024年02月20日
    浏览(49)
  • JVM调优工具-VisualVM 远程连接服务器

    通过windows系统中的VisualVM工具,监控Linux系统的测试环境或uat环境或生成环境,来监控JVM内存。 VisualVm提供在Java虚拟机(Java Virutal Machine,JVM)上运行的java应用程序。 只有按照了jdk,就可以在bin目录下,找到启动程序。 以下是具体步骤: 一、再windows系统中,启动VisualVM 在

    2024年02月01日
    浏览(42)
  • 性能调优篇 二、Jvm监控及诊断工具-命令行篇

    性能诊断是软件工程师在日程生活中需要经常面对和解决的问题 Java作为最流行的编程语言之一,其应用性能诊断一直收到业内广泛关注。造成Java应用出现性能问题的因素非常多,例如线程控制,磁盘读写,数据库访问,网络io,垃圾收集等。 想要定位这些问题,一款优秀的

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

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

    2024年02月09日
    浏览(39)
  • JVM 性能调优及监控诊断工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

    目录 一. 前言 二. jps(Java Virtual Machine Process Status Tool) 三. jstack 四. jmap(Memory Map)和 jhat(Java Heap Analysis Tool) 五. jstat(JVM统计监测工具) 六. hprof(Heap/CPU Profiling Tool) 七. 总结     工欲善其事,必先利其器。在日常的企业级 Java 应用开发、维护中,我们可能会碰到下面

    2024年02月04日
    浏览(45)
  • JVM 17 调优指南:如何进行JVM调优,JVM调优参数

    在这篇文章中,我会详细介绍JVM调优的概念、重要性和具体的JVM调优参数。此外,我将提供12个实用的代码示例,每个示例都会包含JVM调优参数和相应的Java代码。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等经验分享 JVM调优是调整

    2024年02月02日
    浏览(49)
  • JVM 8 调优指南:如何进行JVM调优,JVM调优参数

    这篇文章将详细介绍如何进行JVM 8调优,包括JVM 8调优参数及其应用。此外,我将提供12个实用的代码示例,每个示例都会结合JVM启动参数和Java代码。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等经验分享 JVM调优是指通过调整Java虚拟

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

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

    2024年01月16日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包