java 性能监控 jstack 线程死锁 JConsole 和 BTrace 图形化工具

2023-11-09

java 性能监控 工具

除了 javac java javap 之外, jdk 安装包还提供了很多其他工具
列出 bin 目录下的文件

TomChens-MacBook-Pro:Commands tomchen$ ls
appletviewer    javadoc     jmap        keytool     serialver
apt     javah       jmc     native2ascii    servertool
extcheck    javap       jps     orbd        tnameserv
idlj        javaws      jrunscript  pack200     unpack200
jar     jcmd        jsadebugd   policytool  wsgen
jarsigner   jconsole    jstack      rmic        wsimport
java        jdb     jstat       rmid        xjc
java_home   jhat        jstatd      rmiregistry
javac       jinfo       jvisualvm   schemagen

jvisualvm

可以在线安装很多插件, 这是最新的非常强大的多合一故障处理工具

jvisualvm界面

生成 Heap Dump, 可以在OQL Console 执行类似 sql 语句的 OQL

Heap Dump界面

jvisualvm 的 BTrace 插件

生产环境服务无法停止的时候, 而日志里的信息无法满足我们需要时候, 可以通过这个打印调用堆栈 参数 返回值等

jconsole

也是一个图形化的监控工具

jconsole界面

jps 虚拟机进程状况工具

类似于 ps 命令

jps -l
582 HttpFind
431 RefreshBlog.jar
585 sun.tools.jps.Jps

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

 jstat -gcutil 431
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  0.00  57.17  12.43  24.74  42.31     13    0.044     0    0.000    0.044

从中可以看出 survivor(S0 S1) eden (E) young GC(YGC) 等参数


jstat -class 434
Loaded  Bytes  Unloaded  Bytes     Time   
 17095 36897.7     1899  2970.9      14.87

类加载时间为14.87

jstack java堆栈管理工具

可以查看线程死锁

jstack 582
......
......
Found one Java-level deadlock:
=============================
"Thread-199":
  waiting to lock monitor 0x00007facb3027608 (object 0x00000007e786b528, a java.lang.Integer),
  which is held by "Thread-3"
"Thread-3":
  waiting to lock monitor 0x00007facb3026108 (object 0x00000007e786b518, a java.lang.Integer),
  which is held by "Thread-8"
"Thread-8":
  waiting to lock monitor 0x00007facb3027608 (object 0x00000007e786b528, a java.lang.Integer),
  which is held by "Thread-3"

Java stack information for the threads listed above:
===================================================
"Thread-199":
    at HttpFind$SyncAdd.run(HttpFind.java:52)
    - waiting to lock <0x00000007e786b528> (a java.lang.Integer)
    at java.lang.Thread.run(Thread.java:722)
"Thread-3":
    at HttpFind$SyncAdd.run(HttpFind.java:53)
    - waiting to lock <0x00000007e786b518> (a java.lang.Integer)
    - locked <0x00000007e786b528> (a java.lang.Integer)
    at java.lang.Thread.run(Thread.java:722)
"Thread-8":
    at HttpFind$SyncAdd.run(HttpFind.java:53)
    - waiting to lock <0x00000007e786b528> (a java.lang.Integer)
    - locked <0x00000007e786b518> (a java.lang.Integer)
    at java.lang.Thread.run(Thread.java:722)

Found 1 deadlock.

jhat 虚拟机堆转储快照分析工具

jinfo java 配置信息工具

jmap java 内存印象工具

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 性能监控 jstack 线程死锁 JConsole 和 BTrace 图形化工具 的相关文章

随机推荐

  • 简单几句话总结Unicode,UTF-8和UTF-16

    概念 先说一说基本的概念 这包括什么是Unicode 什么是UTF 8 什么是UTF 16 Unicode UTF 8 UTF 16完整的说明请参考Wiki Unicode UTF 8 UTF 16 用比较简单的话来说就是 Unicode定
  • Flink实战: 窗口TopN分析与实现

    TopN 的需求场景不管是在离线计算还是实时计算都是比较常见的 例如电商中计算热门销售商品 广告计算中点击数前N的广告 搜索中计算搜索次数前N的搜索词 topN又分为全局topN 分组topN 比喻说热门销售商品可以直接按照各个商品的销售总
  • 【K8S系列】5-K8s实战-Controllers

    K8s控制器 Controllers 官网 https kubernetes io docs concepts workloads controllers 控制器的作用是用来统一发布Pod的对象 通过yaml文件定义 运行后可以进行查看 变
  • Java面试题新二(转载)

    JAVA基础 JAVA中的几种基本类型 各占用多少字节 下图单位是bit 非字节 1B 8bit String能被继承吗 为什么 不可以 因为String类有final修饰符 而final修饰的类是不能被继承的 实现细节不允许改变 平常我们
  • 2020年aws认证一些经验 saa

    2020年2月过的aws saa考试 1 报名网址 https www aws training Certification 2 费用 150美金 需要一个visa的信用卡 3 证书有效期3年 4 考试名字要与信用卡一致 考试时要看信用卡和
  • 【机器学习基础】机器学习中必知必会的 3 种特征选取方法!

    随着深度学习的蓬勃发展 越来越多的小伙伴开始尝试搭建深层神经网络应用于工作场景中 认为只需要把数据放入模型中 调优模型参数就可以让模型利用自身机制来选择重要特征 输出较好的数据结果 在现实工作场景中 受限制数据和时间 这样的做法其实并不可取
  • PHP微信获取小程序手机号失败 -41003

    使用官方的PHP版demo解密 调用接口后返回错误码 41003 并未成功解密出想要的信息 以为是encryptedData 数据传输的时候 号会自动转换为空格 但是不是 打印了一下解密后的iv 和 encryptedData 发现是乱码
  • matlab开根号_matlab基本计算

    这里介绍的内容是使用MATLAB进行基本的数学计算 完成的是类似计算机计算数学算式的功能 这篇文章基本可以帮助你学会所有基本的matlab计算方法 1 基本计算 MATLAB中的基本的运算符号为 四则运算规则和平时使用的计算器相同 使用MA
  • C++语句 与简单方法

    语句 在c primer plus 第二章中除了讲到输出流 还提到了更多的语句 书中称之为Statement 简单看来语句有申明语句 赋值语句 调用函数的语句 下面看书上的一组例子 include
  • 锁的四种状态及升级过程

    锁的四种状态与锁升级过程 图文详解 一 前言 锁的状态总共有四种 级别由低到高依次为 无锁 偏向锁 轻量级锁 重量级锁 这四种锁状态分别代表什么 为什么会有锁升级 其实在 JDK 1 6之前 synchronized 还是一个重量级锁 是一
  • react脚手架、使用步骤、在react脚手架里做项目的步骤、反向代理

    脚手架 facebook的官方脚手架 1 安装 create react app CRA npm install create react app g yarn global add create react app 安装yarn 方法一
  • Shiro学习小记--身份验证得到principals

    项目使用shiro进行权限管理 Shiro国内目前资料极少 学习时完全就是根据张开涛的 跟我学Shiro 自己去摸索的 慢慢的开始入门 Shiro中有一个概念是principals 解释如下 principals 身份 即主体的标识属性 可
  • 软件测试-环境搭建思路/测试流程

    环境搭建思路 测试流程 1 软件测试环境搭建 1 1 搭建测试环境前 1 2 环境搭建模式 1 3 测试环境建设思路 2 测试过程 2 1 测试策划过程 2 1 1 需求分析 余额宝需求测试实战 2 1 2 测试策略 2 1 3 测试方案设
  • 视频教程-卷积神经网络从原理到实战-深度学习

    卷积神经网络从原理到实战 本科北京航空航天大学计算机科学与技术专业 长期从事图像算法和文本算法 曾就业于航天相关机密单位 熟悉FasterRCNN SSD YOLO MASKRCNN一系列图像框架 及Bert Bilstm等NLP相关技术
  • App隐私合规注意事项和相关材料

    合规条文相关资料 最新 移动互联网应用程序信息服务管理规定 2022年8月1日起施行 http www cac gov cn 2022 06 14 c 1656821626455324 htm 全国APP技术检测平台 APP公共服务系统 h
  • 【HarmonyOS】详解低代码端云一体化开发之数据模型

    关键字 元服务 低代码平台 端云一体化开发 数据模型 拖拽式UI 1 写在前面 上一篇中分享了关于低代码平台开发元服务的基本使用 有兴趣的可以看一下 文章地址如下 华为开发者论坛 但是在上一篇中我们的数据都是在端侧配置的 这种方式肯定是无法
  • IDEA 快捷键大全

    目录 一 文本编辑 二 光标操作 三 文本选择 四 代码折叠 五 辅助编码 六 上下文导航 七 查找操作 八 符号导航 九 代码分析 十 运行和调试 十一 代码重构 一 文本编辑 Ctrl Shift V 从历史选择粘贴 Ctrl D 复制
  • Java多线程实现的四种方式

    多线程实现的四种方式 1 继承Thread类 重写run方法 2 实现Runnable接口 重写run方法 实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3 通过Callable和FutureTask创建
  • mbind: Operation not permitted

    问题描述 IntelliJ IDEA 中 Docker Integration 插件 启动 MySql 容器 然后使用 Navicat for MySQL 来连接 只要连接数据库就会出现 mbind Operation not permit
  • java 性能监控 jstack 线程死锁 JConsole 和 BTrace 图形化工具

    java 性能监控 工具 除了 javac java javap 之外 jdk 安装包还提供了很多其他工具 列出 bin 目录下的文件 TomChens MacBook Pro Commands tomchen ls appletviewe