【JVM】常⽤的命令⾏性能监控和故障处理⼯具

在Java应用程序的开发和维护过程中,性能监控和故障处理是至关重要的环节。为了更好地进行这些任务,Java生态系统提供了多种命令行工具。以下是一些常用的性能监控和故障处理工具的详细介绍:

1. jps (Java Virtual Machine Process Status Tool)

jps 用于列出当前所有运行中的Java进程及其相关信息。

使用示例:
jps -l

输出示例:

12345 com.example.MyApp
67890 sun.tools.jps.Jps

2. jstat (Java Virtual Machine Statistics Monitoring Tool)

jstat 用于监控JVM内存、垃圾收集、类加载等各种运行时信息。

常用选项:
  • -gc:显示垃圾收集相关统计信息。
  • -class:显示类加载器相关信息。
  • -compiler:显示JIT编译器相关信息。
使用示例:
jstat -gc 12345 1000 10

输出示例:

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC      MU     CCSC   CCSU     YGC    YGCT   FGC    FGCT     GCT   1024.0 1024.0  0.0    256.0  8192.0  4096.0  10240.0     8192.0  2048.0  1024.0  256.0   128.0   10    0.123  5      0.456    0.579

3. jmap (Java Memory Map Tool)

jmap 用于生成堆转储(heap dump)、查看堆内存详情及分析内存使用情况。

常用选项:
  • -heap:打印堆内存摘要信息。
  • -histo:打印堆中对象的统计信息。
  • -dump:生成堆转储文件。
使用示例:
jmap -heap 12345

输出示例:

Attaching to process ID 12345, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 1.8.0_201-b09using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GCHeap Configuration:MinHeapFreeRatio         = 40MaxHeapFreeRatio         = 70MaxHeapSize              = 209715200 (200.0MB)NewSize                  = 13107200 (12.5MB)MaxNewSize               = 13107200 (12.5MB)OldSize                  = 16777216 (16.0MB)NewRatio                 = 2SurvivorRatio            = 8PermSize                 = 21757952 (20.75MB)MaxPermSize              = 21757952 (20.75MB)

4. jstack (Java Stack Trace Tool)

jstack 用于打印Java进程的线程栈跟踪信息,帮助诊断线程问题如死锁、线程阻塞等。

使用示例:
jstack 12345

输出示例:

2019-08-13 17:00:47
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.201-b09 mixed mode):"Attach Listener" #12 daemon prio=9 os_prio=31 tid=0x00007fe99c003800 nid=0x1503 waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"Service Thread" #10 daemon prio=9 os_prio=31 tid=0x00007fe99b80e000 nid=0x1303 runnable [0x0000000000000000]java.lang.Thread.State: RUNNABLE"Common-Cleaner" #9 daemon prio=8 os_prio=31 tid=0x00007fe99b00e800 nid=0x1103 in Object.wait() [0x000070000d2e2000]java.lang.Thread.State: TIMED_WAITING (on object monitor)at java.lang.Object.wait(Native Method)- waiting on <0x0000000780c04fa0> (a java.lang.ref.ReferenceQueue$Lock)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)- locked <0x0000000780c04fa0> (a java.lang.ref.ReferenceQueue$Lock)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:122)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:126)at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)...

5. jinfo (Java Configuration Info Tool)

jinfo 用于显示或调整Java进程的配置信息,如系统属性和JVM参数。

使用示例:
jinfo -flags 12345

输出示例:

-XX:CICompilerCount=4 -XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:MaxNewSize=715653120 -XX:NewSize=22282240 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 

6. jcmd (Java Diagnostic Command)

jcmd 是一个多功能的命令行工具,能够执行各种诊断命令,如生成堆转储、线程转储、GC统计等。

常用命令:
  • GC.run:触发垃圾收集。
  • Thread.print:打印线程栈跟踪信息。
  • VM.system_properties:打印系统属性。
使用示例:
jcmd 12345 GC.run
jcmd 12345 Thread.print
jcmd 12345 VM.system_properties

输出示例:

# 例如:jcmd 12345 VM.system_properties
12345:
{"java.runtime.name" : "Java(TM) SE Runtime Environment","java.vm.version" : "25.201-b09","java.vm.vendor" : "Oracle Corporation",...
}

7. javap (Java Class File Disassembler)

javap 用于反汇编Java类文件,帮助分析字节码。

使用示例:
javap -c MyClass

输出示例:

Compiled from "MyClass.java"
public class MyClass {public MyClass();Code:0: aload_01: invokespecial #1                  // Method java/lang/Object."<init>":()V4: returnpublic static void main(java.lang.String[]);Code:0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc           #3                  // String Hello, World!5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V8: return
}

总结

这些命令行工具在Java应用程序的性能监控和故障处理方面非常有用。通过合理使用这些工具,可以有效地监控应用程序的运行状态,诊断和解决各种性能问题和故障。

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

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

相关文章

接口性能提升秘籍:本地缓存的总结与实践

&#x1f345;我是小宋&#xff0c; 一个只熬夜但不秃头的Java程序员。 &#x1f345;关注我&#xff0c;带你轻松过面试。提升简历亮点&#xff08;14个demo&#xff09; . . &#x1f30f;号&#xff1a;tutou123com。拉你进面试专属群。 优雅的接口调优之本地缓存优化 接口…

Spring中网络请求客户端WebClient的使用详解

Spring中网络请求客户端WebClient的使用详解_java_脚本之家 Spring5的WebClient使用详解-腾讯云开发者社区-腾讯云 在 Spring 5 之前&#xff0c;如果我们想要调用其他系统提供的 HTTP 服务&#xff0c;通常可以使用 Spring 提供的 RestTemplate 来访问&#xff0c;不过由于 …

初识es(elasticsearch)

初识elasticsearch 什么是elasticsearch&#xff1f;&#xff1a; 一个开源的分部署搜索引擎、可以用来实现搜索、日志统计、分析、系统监控等功能。 什么是文档和词条&#xff1f; 每一条数据就是一个文档对文档中的内容进行分词&#xff0c;得到的词语就是词条 什么是正向…

【elementui源码解析】如何实现自动渲染md文档-第四篇

目录 1.前言 2.md-loader - index.js 1&#xff09;md.render() 2&#xff09;定义变量 3&#xff09;while stripTemplate stripScript genInlineComponentText 4&#xff09;pageScript 5&#xff09;return 6&#xff09;demo-block 3.总结 所有章节&#x…

HTML(9)——字体修饰

常用的字体修饰属性 属性描述font-size字体大小 单位&#xff1a;数字pxfont-weight字体粗细 单位&#xff1a;数字font-style 字体倾斜 line-height行高 单位&#xff1a;数字px/数字(当前size的倍数&#xff09;font-family字体族…

微纳米气泡发生器是微纳米气泡产生装置 未来市场需求将不断释放

微纳米气泡发生器是微纳米气泡产生装置 未来市场需求将不断释放 微纳米气泡发生器即微纳米气泡发生设备&#xff0c;是一种将水和气体混合并产生微纳米气泡的设备。微纳米气泡是指直径在100μm以下的气泡&#xff0c;分为纳米气泡和微米气泡。   微纳米气泡发生器主要由发生设…

录屏录音两不误!电脑录屏录音软件推荐(3款)

在数字化时代&#xff0c;电脑录屏录音软件已成为教学、演示、会议记录等领域不可或缺的工具。它们能够捕捉屏幕上的每一个动作&#xff0c;同时录制音频&#xff0c;为用户提供直观、生动的视听材料。本文将详细介绍三种常用的电脑录屏录音软件&#xff0c;帮助读者了解并掌握…

Flink parallelism 和 Slot 介绍

Flink Parallelism介绍 在Apache Flink中&#xff0c;Parallelism&#xff08;并行度&#xff09;是一个核心概念&#xff0c;它决定了Flink任务&#xff08;Task&#xff09;的并行执行程度。Parallelism指的是在Flink应用程序中&#xff0c;一个算子&#xff08;Operator&am…

误删的文件不在回收站如何找回?6个恢复秘诀分享!

“我刚刚误删了一些文件&#xff0c;但是在回收站中没有看到这部分文件&#xff0c;这种情况下还有方法可以找回误删的文件吗&#xff1f;在线等一个答案&#xff01;” 在数字化时代&#xff0c;文件的安全和完整性对于个人和企业都至关重要。然而&#xff0c;有时候由于疏忽或…

【Android】使用SeekBar控制数据的滚动

项目需求 有一个文本数据比较长&#xff0c;需要在文本右侧加一个SeekBar&#xff0c;然后根据SeekBar的上下滚动来控制文本的滚动。 项目实现 我们使用TextView来显示文本&#xff0c;但是文本比较长的话&#xff0c;需要在TextView外面套一个ScrollView&#xff0c;但是我…

【100个C++面试题和解答】

以下是100个C面试题&#xff0c;每个问题后面都附有简单的解答。请注意&#xff0c;这些解答可能不是最深入或最全面的&#xff0c;但它们应该能够帮助您了解问题的基本概念。 问题&#xff1a;C中的main函数必须返回什么类型&#xff1f; 解答&#xff1a;main函数必须返回int…

利用K8S技术栈打造个人私有云

1.三个节点&#xff1a;master&#xff0c;slave&#xff0c;client 在Kubernetes集群中&#xff0c;三个节点的职责分别如下&#xff1a; Master节点&#xff1a; docker&#xff1a;用于运行Docker容器。 etcd&#xff1a;一个分布式键值存储系统&#xff0c;用于保存Kuberne…

42、基于神经网络的训练堆叠自编码器进行图像分类(matlab)

1、训练堆叠自编码器进行图像分类的原理及流程 基于神经网络的训练堆叠自编码器进行图像分类的原理和流程如下&#xff1a; 堆叠自编码器&#xff08;Stacked Autoencoder&#xff09;是一种无监督学习算法&#xff0c;由多个自编码器&#xff08;Autoencoder&#xff09;堆叠…

面试专区|【32道HDFS高频题整理(附答案背诵版)】

简述什么是HDFS&#xff0c;以及HDFS作用 &#xff1f; HDFS&#xff0c;即Hadoop Distributed File System&#xff0c;是Hadoop分布式文件系统。它是一个专门为了存储大量数据而设计的文件系统&#xff0c;能够在廉价的商用硬件上提供高吞吐量的数据访问&#xff0c;非常适合…

python使用openai做个简单的大模型对话转发服务

python库 openaiflaskdataclassestyping 废话不多说直接上干货 # 引入相关库 import datetime import json import logging from logging.handlers import RotatingFileHandler from openai import OpenAI from flask import Flask, request, jsonify, Response from datacl…

宝塔软件默认安装位置

自带的JDK /usr/local/btjdk/jdk8Tomcat 各个版本都在bttomcat这个文件夹下面&#xff0c;用版本区分。tomcat_bak8是备份文件 /usr/local/bttomcat/tomcat8nginx /www/server/nginxnginx配置文件存放目录 /www/server/panel/vhost/nginxredis /www/server/redismysql /…

nextjs(持续学习中)

return ( <p className{${lusitana.className} text-xl text-gray-800 md:text-3xl md:leading-normal}> Welcome to Acme. This is the example for the{’ } Next.js Learn Course , brought to you by Vercel. ); } 在顶级 /public 文件夹下提供静态资产 **默认 /…

AI在创造还是毁掉音乐?

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;它正在逐步渗透到各个领域&#xff0c;包括音乐创作。AI可以模拟人类作曲家&#xff0c;生成复杂的旋律和和声&#xff0c;甚至进行歌词创作。然而&#xff0c;这种技术进步引发了一个重要的争论&#xff1a;…

【数学】什么是方法矩估计?和最大似然估计是什么关系?

背景 方法矩估计&#xff08;Method of Moments Estimation&#xff09;和最大似然估计&#xff08;Maximum Likelihood Estimation, MLE&#xff09;是两种常用的参数估计方法。方法矩估计基于样本矩与总体矩的关系&#xff0c;通过样本数据计算样本矩来估计总体参数。最大似…

央国企财务专家的“专家课”——中国总会计师协会联合实在智能举办RPA专项培训

近日&#xff0c;中国总会计师协会正式举办了为期五天的「财务数字化思维与实用IT技能提升」专项培训&#xff0c;吸引了来自中铁十五局集团有限公司、中国航空工业规划设计院、中核核电运行管理有限公司、中国北方车辆有限公司、一汽物流有限公司等国企、事业单位及民营企业共…