8款JVM性能调优监控工具(提高开发效率)

562 篇文章 77 订阅
订阅专栏

在平时的开发当中我们总是会遇到各种各样的问题,比如说内存泄漏、死锁、CPU等。遇到问题不可怕,关键是我们如何去排查这些错误,对症下药才是根本。不过对于很多人来说,往往找不到这些问题的根本所在,因此这篇文章主要是让我们掌握一些工具来分析到底是哪里出现了问题。

在之前的文章中,主要是分析了JVM的内存结构、类加载机制和垃圾回收机制。文章的顺序也是循序渐进的,从这篇文章当中我们主要是分析JDK自带的工具,把理论应用于实践。

首先我们先对几种要讲的工具进行一个概述,然后再分别分析:

一、性能监控工具概述

工具主要是为了解决问题而生的,就是由于我们的程序存在着一些性能问题,才有了这些工具。其实当我们在下载完成JDK之后,那些工具就被SUN公司随之送给我们了。

我们可以在我们的JDK安装目录,下看看会有很多这样的工具。

在这里插入图片描述

我们会发现很多这样的exe文件,这里面有很多都是性能监控工具。我们就抽出来几个进行讲解。

img

常见的几个工具都已经列出来了,还有一些其他的工具,其实用起来比JDK自带的还要好,我会在今后的文章中列出来。OK,我们就一个一个去分析一下这些工具是干嘛的,以及如何去使用的。

二、工具

1、jps:虚拟机进程状况工具

jps主要用来输出JVM中运行的进程状态信息。语法格式如下:

jps [options] [hostid]

第一个参数:options

-q 不输出类名、Jar名和传入main方法的参数-m 输出传入main方法的参数-l 输出main类或Jar的全限名-v 输出传入JVM的参数

第二个参数:hostid

主机或者是服务器的id,如果不指定,就默认为当前的主机或者是服务器。

我是在Windows10系统下测试的,当然你可以在linux下试验,方式是一样的,结果可能有不同。你可以选择不同的参数选项来进行测试。打开CMD输入相应命令

在这里插入图片描述

2、jstack:堆栈跟踪工具

jstack用于生成虚拟机当前时刻的线程快照。语法格式如下:

jstack [option] vmid

第一个参数:option

img

第二个参数:vmid

vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。

我们直接在CMD中操作一下:

在这里插入图片描述

3、jstat:虚拟机统计信息监控工具

jstat监视虚拟机各种运行状态信息,可以显示本地或者是远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。语法格式如下:

jstat [ generalOption | outputOptions vmid [interval] [count]] ]

第一个参数:generalOption | outputOptions

这个参数表示的option,代表着用户希望查询的虚拟机信息,分为类加载、垃圾收集、运行期编译状况3类。

img

第二个参数:vmid

vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。

第三个参数:interval

interval是采样时间间隔,

第四个参数:count

count表示的是采样数。

下面我们就是用一下这个工具,打开我们的CMD,输入相应的命令:

img

4、jinfo:实时地查看和调整虚拟机各项参数

命令格式:

jinfo [option] pid

第一个参数:option

img

第二个参数:pid

指定显示的进程id。

在CMD中进行测试:

在这里插入图片描述

5、jmap:生成虚拟机的内存转储快照(heapdump文件)

jmap(Memory Map for Java,内存映像工具),用于生成堆转存的快照,一般是heapdump或者dump文件。如果不适用jmap命令,可以使用-XX:+HeapDumpOnOutOfMemoryError参数,当虚拟机发生内存溢出的时候可以产生快照。或者使用kill -3 pid也可以产生。jmap的作用并不仅仅是为了获取dump文件,它可以查询finalize执行队列,java堆和永久代的详细信息,如空间使用率,当前用的哪种收集器。命令格式如下:

jmap [option] vmid

第一个参数:

img

第二个参数:vmid

vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID.

在cmd中测试:

在这里插入图片描述

6、jhat:分析内存转储快照,不推荐使用,而且慢

由于这个工具功能比较简陋,运行起来也比较耗时,所以这个工具不推荐使用,推荐使用MAT。

7、JConsole:JMX的可视化管理工具

这个工具相比较前面几个工具,使用率比较高,很重要。它是一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。

在cmd里面输入 jconsole,选则进程就可以了。(前提是在IDE工具先建立一个线程运行着)

img

然后我们选择了相应的选项之后,进入这个工具就会出现下面这个界面

img

在上面有菜单,我们可以选择其中一个进行查看,就可以了,这个用具用起来很方便,也是我之前用的比较多的工具。

8、VisualVM:多合一故障管理工具

这个工具也很牛bility。它同jconsole都是一个基于图形化界面的、可以查看本地及远程的JAVA GUI监控工具,Jvisualvm同jconsole的使用方式一样,直接在命令行打入jvisualvm即可启动,jvisualvm界面更美观一些,数据更实时:

img

最上面也有菜单,你可以选择不同的选项来展示。自己动手试一遍是最好的。

三、总结

这些工具就先写这么多,在文章一开始我们其实已经发现了,jdk自带的工具那是超级的多,而且随着jdk版本的不断更新,工具还有不断加强增多的趋势,想要每一个都掌握那太费时间了,我们遇到哪些问题去搜索一下,看看能用到哪些工具就可以了,列出的这几种工具,对于初学者来说还是比较适用的。

JAVA JVM性能调优监控工具详解
04-18
JAVA JVM性能调优监控工具详解
5 强大的 JVM 性能调优工具 ,好用爆了
javalingyu的博客
04-12 5824
现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发、维护中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求。 本文将对一些常用的JVM性能调优监控工具进行介绍,希望能起抛砖引玉之用。 一、 jps(Java V
Java--JDK自带JVM性能调优工具jconsole远程监控tomcat进程_java监控jvm命令端口12345(1)
最新发布
2401_84165953的博客
04-08 1025
24)][外链图片转存中…(img-hvffG0sR-1712522011725)]
常用的 JVM 性能调优监控工具,太强大了!
程序IT圈
03-31 320
my.oschina.net/feichexia/blog/196575现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁...
JVM 监控 调优 工具
06-07
jvm知识点总览:jvm 内存机构、JVM监控工具JVM调优、GC优化
Mac版JProfiler+JVM性能调优工具
06-09
Mac版JProfiler+JVM性能调优工具。 JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
jvm监控工具介绍
09-10
本文档来源于网络,简单的介绍了jconsole,jmap,jps 详细的介绍了jstat
jvm系列(5)性能监控工具
冯冬冬的博客
07-14 619
在平时的开发当中我们总是会遇到各种各样的问题,比如说内存泄漏、死锁、CPU等。遇到问题不可怕,关键是我们如何去排查这些错误,对症下药才是根本。不过对于很多人来说,往往找不到这些问题的根本所在,因此这篇文章主要是让我们掌握一些工具来分析到底是哪里出现了问题。 在之前的文章中,主要是分析了JVM的内存结构、类加载机制和垃圾回收机制。文章的顺序也是循序渐进的,从这篇文章当中我们主要是分析JDK自带的工具...
JVM 性能调优监控工具
weixin_34342992的博客
04-11 324
声明:本文转自《https://www.cnblogs.com/anxiao/p/6796644.html?utm_source=itdadao&utm_medium=referral》 企业级应用开发中经常会遇到以下问题,可以使用工具JVM进行监管,以便及时查找问题所在。1)内存不足OutOfMemory(大对象没有gc等),内存泄露;2)线程死锁,线程数过多;3)锁争用(Lock ...
深入理解JVM(七)——性能监控工具
词语大杂烩
09-01 1859
前言   工欲善其事必先利其器,性能优化和故障排查在我们大都数人眼里是件比较棘手的事情,一是需要具备一定的原理知识作为基础,二是需要掌握排查问题和解决问题的流程、方法。本文就将介绍利用性能监控工具,帮助开发者更快更准的找到问题产生的根源。本文分为三部分,第一部分将介绍在Linux环境下的常用监控工具,第二部分介绍Windows环境下的监控工具,第三部分将通过一个案例,介绍利用这些监控工具一步
你值得拥有:25 个 Linux 性能监控工具
cloud_xh的专栏
12-22 1453
一段时间以来,我们在网上向读者介绍了如何为Linux以及类Linux操作系统配置多种不同的性能监控工具。在这篇文章中我们将罗列一系列使用最频繁的性能监控工具,并对介绍到的每一个工具提供了相应的简介链接,大致将其划分为两类,基于命令行的和提供图形化接口的。 基于命令行的性能监控工具 1. dstat - 多类型资源统计工具 该命令整合了vmstat,iostat和ifstat三种命
JVM性能调优监控工具1
08-08
JVM性能调优监控工具1
JVM性能调优分析过程
06-19
JVM性能调优,如何通过机器硬件资源配置,以及系统一个并发量,初步分析JVM内存暂用情况,以及如何优化内存分区;提供一个简单的思路供大家参考
JVM调优JVM自带性能调优工具
qq_39093474的博客
09-01 1257
前言 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。接下来的两个专题分别会讲VisualVM的具体应用。 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention)
jvm 自带调优工具一览
做一个有思想的技术人
09-29 469
关于JVM的一些优化工具,这里只是简单的介绍了一下,有兴趣的可以深入了解一下,对JVM进行优化时大有用处。
jvm系列(七):jvm调优-工具
weixin_33722405的博客
01-02 2451
16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题,长长可以到...
常用性能分析监控工具 iostat、iotop、top、htop、free、iftop
dacming的博客
04-26 807
iotop是一开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。-x:更详细的io统计信息;-a, --accumulated 累积的I/O,显示从iotop启动后每个进程累积的I/O总数,便于诊断问题。-o, --only 只显示正在产生I/O的进程或线程,运行过程中,可以通过按o随时切换。秒中有百分之多少的时间用于 I/O ,如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷。
JVM性能监控工具 - jstack
大后生大大大的博客
06-19 254
jstack(JVM Stack Trace):用于生成虚拟机指定进程当前时刻的线程快照。线程快照就是当前虚拟机内指定进程的每一条线程正在执行的方法堆栈的集合。
JVM性能监控工具
Object
11-30 208
显示系统整体资源使用情况:top命令 监控内存和CPU:vmstat命令 监控IO使用:iostat命令 多功能诊断器:pidstat工具-可以监控进程和线程的性能情况
JVM性能调优的六大
07-28
1. 堆内存调优:根据应用程序的需求,合理配置堆内存大小,避免堆内存溢出或过大导致的性能问题。可以通过调整-Xmx和-Xms参数来控制堆内存的大小。 2. 垃圾回收调优:选择适合应用程序的垃圾回收算法和参数配置,以提高垃圾回收的效率和减少停顿时间。可以通过调整-Xgc参数来指定垃圾回收器和相关配置。 3. 线程调优:合理配置线程池大小、线程栈大小和线程优先级等参数,避免线程过多或过少造成的性能问题。可以通过调整-Xss参数来控制线程栈大小。 4. 类加载调优:优化类加载过程,减少类加载时间和内存占用。可以通过使用类加载器进行类加载的监控和优化。 5. I/O调优:合理使用NIO、异步IO等技术,减少I/O操作的时间和资源消耗。可以通过使用性能分析工具来定位瓶颈和优化I/O操作。 6. 数据库连接池调优:合理配置数据库连接池的大小、最大连接数和最小空闲连接数等参数,以提高数据库访问的性能和效率。可以通过使用连接池监控工具进行连接池的性能分析和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • @RequestParam详解 86502
  • 计算机网络—一个自治系统有5个局域网,其连接图如图所示。LAN2至LAN5上的主机数分别为:91,150,3,15。该自治系统分配到的IP地址块为30.138.118/23。试给出每一个局域网的地址块 64005
  • BigDecimal保留两位小数 62851
  • Linux命令 移动/复制文件/目录到指定目录下 52059
  • Java 中判断一个字符串是否包含另外一个字符串的方法 50676

分类专栏

  • Spring 91篇
  • 分布式 12篇
  • SpringBoot 286篇
  • Linux 62篇
  • MySQL 162篇
  • 其他 33篇
  • Java细节 562篇
  • SpringCloud 6篇
  • 计算机网络 28篇
  • MyBatis 39篇
  • Java 74篇
  • 操作系统 5篇
  • Git 10篇
  • 大数据 21篇
  • 云原生 2篇
  • Docker 10篇
  • 流媒体 6篇
  • Redis 29篇
  • 视频 8篇
  • 微服务 13篇
  • Nginx 5篇
  • MyBatis-Plus 32篇
  • 软件工程 2篇
  • Vue 19篇
  • 数据结构与算法 18篇
  • 面试 30篇
  • IOT 11篇
  • Jackson 5篇
  • mina 4篇
  • JVM 9篇
  • SpringMVC 26篇
  • Java注解 8篇
  • Idea 19篇
  • Shiro 2篇
  • Maven 22篇
  • Socket 8篇
  • JSON 9篇
  • UE4 2篇
  • Java8新特性 40篇
  • 多线程 17篇
  • GSON 16篇
  • Excel导出 19篇
  • Http 16篇
  • 软件测试 7篇
  • 接口文档 2篇
  • Java异常 3篇
  • ThreadLocal 7篇
  • MinIO 3篇
  • Dubbo 45篇
  • 抓包工具 2篇
  • 导出Word 3篇
  • Web3 1篇
  • SSM 22篇
  • Postman 7篇
  • JTS 9篇
  • DataWorks 3篇
  • Jenkins 3篇
  • FreeMarker 2篇
  • 支付 5篇
  • BigDecimal 1篇
  • Exception 4篇
  • JNDI 1篇
  • ODPS 1篇
  • MaxCompute 1篇
  • MongoDB 1篇
  • Flask 1篇
  • JavaWeb 1篇
  • JPA 3篇
  • svn 9篇
  • Stream 3篇
  • Chrome浏览器 1篇
  • zip 1篇
  • JS 5篇
  • Windows 2篇
  • Navicat 1篇
  • AWT 3篇
  • Lambda 1篇
  • Zookeeper 1篇
  • OkHttp 1篇
  • 日志 26篇
  • WebSocket 12篇
  • WebService 5篇
  • fastjson 1篇
  • Objects 1篇
  • Java设计模式 7篇
  • HTML 4篇
  • Swagger 4篇
  • NIO 3篇
  • RSA 2篇
  • XSS 3篇
  • Tomcat 8篇
  • JWT 1篇
  • Netty 1篇
  • HashMap 7篇
  • Golang 1篇
  • Servlet 10篇
  • fiddler 2篇
  • JUC 1篇
  • 发送邮件 5篇

最新评论

  • 在 Java 中加入两个列表的 10 种方法

    冬天vs不冷: 干货满满,实用性强,博主的写作风格简洁明了,让人一目了然。文章内容丰富,涵盖了很多实用的知识点。非常感谢博主的分享,期待博主能够继续输出这样优质的好文。同时也希望可以来我博客指导我一番!

  • Zookeeper概要、协议、应用场景

    2401_84166306: 干货满满,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 过滤器、拦截器、aop的先后顺序和作用范围&拦截器preHandle(),postHandle(),afterComplation()方法执行顺序

    战斧: 内容很具体,结构条理也挺清晰,读了以后感觉学到了不少,谢谢博主大佬了

  • Zookeeper概要、协议、应用场景

    2301_77116622: 大佬的文章写的太精辟了 让我深刻了解了这篇文章的精髓 谢谢大佬分享,希望继续创作优质博文。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • Zookeeper概要、协议、应用场景

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/618609118。

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 过滤器、拦截器、aop的先后顺序和作用范围&拦截器preHandle(),postHandle(),afterComplation()方法执行顺序
  • Zookeeper概要、协议、应用场景
  • Spring事务七大传播机制与五个隔离级别,嵌套事务
2024
05月 7篇
04月 24篇
03月 39篇
02月 40篇
01月 37篇
2023年398篇
2022年734篇
2021年866篇
2020年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Archie_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司海北网站优化按天收费镇江企业网站制作推荐龙华百姓网标王推广报价铜仁百度seo哪家好大鹏网页制作推荐贺州网站搭建公司宜昌网站seo优化价格漯河网站优化河源网站优化按天扣费推荐南昌优化韶关外贸网站设计价格丹竹头网络推广价格北京外贸网站建设张掖seo网站优化哪家好合肥seo优化推荐南宁seo网站优化哪家好鄂州网站制作哪家好丹东关键词按天收费伊春SEO按天扣费报价吕梁网站优化按天收费多少钱深圳百度标王价格萍乡企业网站制作价格广安关键词排名多少钱漯河百度关键词包年推广报价鹤岗关键词按天计费多少钱白银企业网站设计哪家好山南seo网站推广公司徐州seo网站优化乌海网站优化软件报价来宾关键词排名歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化