【JVM】聊聊常见的JVM排查工具

JDK工具包

jps 虚拟机进程状况工具

jps是虚拟机进程状况工具,列出正在运行的虚拟机进程,使用 Windows 的任务管理器或 UNIX 的 ps 命令也可以查询,但如果同时启动多个进程,必须依赖 jps。jps -l 显示类名

jps :列出Java程序进程ID和Main函数名称
jps -q :只输出进程ID
jps -m :输出传递给Java进程(主函数)的参数 jps -l :输出主函数的完整路径
jps -v :显示传递给Java虚拟的参数

在这里插入图片描述

jstat:虚拟机统计信息监视工具

监视虚拟机各种运行状态信息,显示本地或远程虚拟机进程中的类加载、内存、垃圾收集、即时编译器等运行时数据。

options:由以下值构成
-class:显示ClassLoader的相关信息
-compiler:显示JIT编译的相关信息
-gc:显示与GC相关信息
-gccapacity:显示各个代的容量和使用情况
-gccause:显示垃圾收集相关信息(同-gcutil),同时显示最后一次或当前正在发生的垃圾收集的诱发原因
-gcnew:显示新生代信息
-gcnewcapacity:显示新生代大小和使用情况
-gcold:显示老年代信息
-gcoldcapacity:显示老年代大小
-gcpermcapacity:显示永久代大小
-gcutil:显示垃圾收集信息

jstat -gc
进程内存区域及GC详细信息

jstat -gc pid 250 -4 (采样间隔250ms 采样数4)
在这里插入图片描述
jstat -gcutil pid 1s 5 (间隔1S 5次 百分比显示)
在这里插入图片描述

jinfo

jinfo可以用来查看正在运行的Java程序的扩展参数,甚至支持修改运行过程中的部分参数
在这里插入图片描述

jmap

jmap用来查看堆内存使用状况,一般结合jhat使用。

生成堆转储文件

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

Java生成堆转储的方式有多种:

  1. 使用 jmap -dump 选项可以在JVM运行时获取 dump.
  2. 使用 jconsole 选项通过 HotSpotDiagnosticMXBean 从运行时获得堆转储。
  3. 在虚拟机启动时如果指定了 -XX:+HeapDumpOnOutOfMemoryError 选项,则抛出 OutOfMemoryError 时,会自动执行堆转
    储。

jstack

jstack是Java虚拟机自带的一种堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照。

jstack -l 30108 | grep 'java.lang.Thread.State' | wc -l // 统计线程数
jstack pid 76859

在这里插入图片描述

第三方工具

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

Arthas 等

dashboard
当前进程的信息
在这里插入图片描述

查看线程thread
通过thread命令来获取到应用进程的线程信息,thread -1会打印线程统计信息
在这里插入图片描述

反编译已加载类源码
运行期通过jad来反编译项目代码, 可以用来验证代码是否上线成功。
在这里插入图片描述

具体使用,可以查看 https://arthas.aliyun.com/doc/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/502155.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网通信协议介绍

为了方便,将物联网通信协议分为两大类,一类是接入协议,一类是通讯协议。接入协议一般负责子网内设备间的组网及通信;通讯协议主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通…

js截取图片地址后面的参数和在路径中截取文件名或后缀名

文章目录 前言截取地址 ?后面的参数在路径中截取文件名或后缀名总结 前言 在处理网页上的图片资源或者其他类型的文件资源时,你可能会遇到需要使用这些技巧的情况。以下是一些具体的使用场景: 动态修改图片参数:如果你有一个图片U…

Zookeeper启动报错排查

前言:生产linux部署的zookeeper,执行启动脚本后,还是无法使用,故进行重启排查 在zookeeper的bin目录下执行 ./zkServer.sh start-foreground 可实时查看启动日志排查问题 根据上面的日志可以看出,是zoo.cfg配置文件里…

Spring注解之参数校验

目录 一些常用的字段验证的注解 验证请求体(RequestBody) 验证请求参数(Path Variables 和 Request Parameters) 数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过…

01tire算法

01tire算法 #include<bits/stdc.h> using namespace std; #define maxn 210000 int a[maxn], ch[maxn][2], val[maxn], n, ans, tot; void insert(int x) {int now 0;for (int j 31; j > 0; j -- ){int pos ((x >> i) & 1);if (!ch[now][pos])ch[now][po…

MacBook将iPad和iPhone备份到移动硬盘

#创作灵感# 一个是ICloud不够用&#xff0c;想备份到本地&#xff1b;然而本地存储不够用&#xff0c;增加容量巨贵&#xff0c;舍不得这个钱&#xff0c;所以就想着能不能备份到移动硬盘。刚好有个移动固态&#xff0c;所以就试了一下&#xff0c;还真可以。 #正文# 说一下逻…

MySQL 外键约束 多表联查 联合查询

外键约束 外键用来让两张表的数据之间建立连接&#xff0c;从而保证数据的一致性和完整性。 有一张学生表和班级表&#xff0c;学生表通过班级表的ID引用到该班级&#xff0c;从而进行关联&#xff0c;而通过外键约束可以保证数据的一致性完整性。 如学生ID18关联到课程ID1号…

介绍几种antvX6常用的方法或配置(使用数据渲染节点和连线、图像居中完整展示、节点不可移出画布、节点图片和标签变化)

前言 接本专栏的上一篇antv X6新手教程&#xff0c;补充一些新的需求实现&#xff0c;丰富巩固antv X6的使用。此篇是以上一篇为基础的&#xff0c;如有初学者可以看本专栏的上一篇。 需求1&#xff1a;将编辑好的拓扑图展示在其他页面 一般在编辑完拓扑图或者流程图之后&am…

Typora快捷键设置详细教程(内附每个步骤详细截图)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

2_SQL

文章目录 SQL数据完整性实体完整性域完整性参照完整性default&#xff08;默认值&#xff09;comment&#xff08;注释&#xff09; 多表设计一对一一对多多对多数据库三大范式第一范式&#xff1a;原子性第二范式&#xff1a;唯一性第三范式&#xff1a;数据的冗余 多表查询连…

面试经典 150 题 ---- 轮转数组

面试经典 150 题 ---- 轮转数组 轮转数组方法一&#xff1a;使用额外的数组方法二&#xff1a;数组翻转 轮转数组 方法一&#xff1a;使用额外的数组 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度&#xff0c;我们遍历原数组&#xff0c;将原数组…

[AutoSar]BSW_Com07 CAN报文接收流程的函数调用

目录 关键词平台说明一、背景二、顺序总览三、函数说明3.1 Com_RxIndication&#xff08;&#xff09; 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC)…