首页 > 编程语言 >java故障处理(一)基础命令行工具

java故障处理(一)基础命令行工具

时间:2023-04-13 14:56:37浏览次数:38  
标签:选项 java 虚拟机 故障 线程 命令行 堆栈 快照

 

一、基础命令行工具

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

可以列出本机正在运行的虚拟机进程,并显示主类

1.1.选项:
选项作用
-q 省略主类,只显示id
-l 显示主类全名,或jar包路径
-m 显示传递给主类main方法的参数
-v 输出jvm启动时所有参数

2.jstat:虚拟机统计信息监控

用于监视虚拟机运行状态的命令行工具,可以显示本地或远程进程的类加载、内存、垃圾收集,即时编译等运行时数据;

使用jstat工具在纯文本状态下监视虚拟机状态的变化, 在用户体验上也许不如JMC、 VisualVM等可视化的监视工具直接以图表展现那样直观, 但在实际生产环境中不一定可以使用图形界面, 直接在控制台中使用jstat命令依然是一种常用的监控方式

2.1.命令行格式:
jstat [ option vmid [interval[s|ms] [count]] ]
参数interval和count代表查询间隔和次数, 如果省略这2个参数, 说明只查询一次
选项option代表用户希望查询的虚拟机信息, 主要分为三类: 类加载、 垃圾收集、 运行期编译状况。
2.2.选项
选项作用
-class 监视类加载、卸载数量,及类加载所耗时间
-gc 监视java堆,含Eden区,2个survivor区,老年代、永久代容量,已用空间,gc时间
-gccapacity 与-gc相同,主要输出java堆各区使用到的最大最小空间
-gcutil 与-gc相同,主要输出已用空间在总空间的占比
-gccause 与-gcutil相同,但会输出上次gc的原因
-gcnew 监视新生代垃圾收集状况
-gcnewcapacity 与-gcnew相同,主要关注使用的最大最小空间
-gcold 监视老年代垃圾收集状况
-gcoldcapacity 与-gcold相同,主要关注使用的最大最小空间
-gcpermcapacity 监视永久代使用最大最小空间
-compiler 输出即时编译器编译的方法和耗时
-printcompilation 输出已被编译过的方法

3.jinfo:java配置信息

使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表, 但如果想知道未被显式指定的参数的系统默认值, 就只能使用jinfo的-flag选项进行查询了

4.jmap:java内存映像工具

jmap用于生产堆转储快照

4.1.选项
选项作用
-dump 生产java堆内存转储快照
-finalizerinfo 显示等待finalizer线程执行finalize的对象,只在Linux有用
-heap 显示java堆详细信息,只在Linux有用
-histo 显示堆对象统计信息,包括类、实例、合计容量
-permstat 显示永久代内存数量,只在Linux有用
-F 强制生成dump快照
4.2.案例
jmap -dump:format=b,file=eclipse.bin 3500

5.jstack:java堆栈跟踪工具

用于生成虚拟机当前时刻的线程快照。 线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合, 生成线程快照的目的通常是定位线程出现长时间停顿的原因, 如线程间死锁、 死循环、 请求外部资源导致的长时间挂 起等, 都是导致线程长时间停顿的常见原因。 线程出现停顿时通过jstack来查看各个线程的调用堆栈,就可以获知没有响应的线程到底在后台做些什么事情, 或者等待着什么资源。

5.1.选项
选项作用
-F 强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用本地方法,可以显示c/c++堆栈

 

 

标签:选项,java,虚拟机,故障,线程,命令行,堆栈,快照
From: https://www.cnblogs.com/wangbin2188/p/17314813.html

相关文章

  • JAVA返回前端时候bean转json时首字母、第二个字母大写会自动变成小写的问题
      后台bean是privateStringuName;但是前端生成的json是uname会自动变成小写 如果我们只是个别的几个的话,只需要加个注解@JsonProperty("uName")privateStringuName; 这样就可以了......
  • 如何实现 Java SpringBoot 自动验证入参数据的有效性
    JavaSpringBoot通过javax.validation.constraints下的注解,实现入参数据自动验证如果碰到@NotEmpty否则不生效,注意看下@RequestBody前面是否加上了@ValidValidation常用注解汇总Constraint详细信息@Null被注释的元素必须为null@NotNull被注释的元素必须不......
  • mysql主从故障恢复
    之前遇到过一次Slave_SQL_Running:no的情况,解决方法请参考:https://www.cnblogs.com/sxFu/p/16022876.html而这次遇到的故障为:Slave_IO_Running:no一方面原因是因为网络通信的问题也有可能是日志读取错误的问题 再看错误信息可以判断为日志读取错误的问题 解决办法1、......
  • 笨办法学 Python · 续 练习 4:处理命令行参数
    练习4:处理命令行参数原文:Exercise4:DealingwithCommandLineArguments译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在你能处理本书的第一部分之前,你需要完成一些简单的黑魔法,教你如何使用Python中的命令行参数。传统上我们称这种黑魔法为“spike”。该术语来自于一个小......
  • 百度编辑器粘贴图片自动上传到服务器(Java版)
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • JAVA使用OpenOffice文件转换
    下载jar包maven中央仓库包不支持docx文件所以不建议使用。jar包是为了方便链接下载链接:https://nchc.dl.sourceforge.net/project/jodconverter/JODConverter/2.2.2/jodconverter-2.2.2.zip 解压后找到:jodconverter-2.2.2\jodconverter-2.2.2\lib\jodconverter-2.2.2.jar放......
  • 4、Web前端学习规划:JavaScript - 学习规划系列文章
          JavaScript作为Web前端里的第3重要的语言,笔者认为该重点进行学习。因为JavaScript衍生出来的框架和类库有不少,而且很强大。所以JavaScript的学习要抓好重点,在基本的语法及应用上学习相关的框架和类库,更好的为Web前端的开发应用做好准备。 1、简介;JavaSc......
  • Java 深拷贝浅拷贝
    Arrays.copyOf()方法在底层是调用了System.arraycopy() 对于基本数据类型来说System.arraycopy()方法是深拷贝,对于引用数据类型来说System.arraycopy()方法是浅拷贝。总结:拷贝方式数值类型引用类型推荐使用for循环深拷贝浅拷贝 copyOf深拷贝浅拷贝推荐......
  • 用java做一个并发10W的网站,需要用到的技术有这些!
        你需要使用以下技术和工具:JavaWeb框架:选择一个性能高、可扩展性好、易于使用和维护的JavaWeb框架,如SpringMVC、Struts2、PlayFramework等。数据库:使用高性能的数据库系统,如MySQL、PostgreSQL、Oracle等。使用数据库连接池可以提高性能。缓存:使用缓存可......
  • Java基础语法
    Java基础语法注释、标识符、关键字注释注释并不会被执行,是给我们程序员看的书写注释是一个非常好的习惯Java注释的分类:单行注释://多行注释:/***/文档注释标识符标识符的作用用来表示变量名、类名、方法名、数组名和文件名等是一个有效的字......