美文网首页
JVM维护常用命令

JVM维护常用命令

作者: zhuke | 来源:发表于2017-06-28 11:34 被阅读0次

1. JPS

jps工具位于%JAVA_HOME%\bin目录下,用于显示所有java进程pid的命令,适合在linux/unix平台上查看当前java进程的一些简单情况。

java程序启动后,会在java.ip.tmpdir目录下,产生一个hsperfdata_username的文件夹,每一个java进程都会在该文件夹下生成一个以java pid为文件名的文件,文件内容包含一系列进程详情。所以jps命令的执行只是简单列出文件夹所有文件名称和解析文件内容显示而已。

但是jps只能查看当前用户下启动的java进程

jps参数
  • -q 不显示class名称,jar文件名和传递给main 方法的参数
  • -m 输出传递给main 方法的参数
  • -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
  • -v 输出传递给JVM的参数

例:



2. jstack

jstack主要用来查看某个Java进程内的线程堆栈信息。其用法如下:

jstack [ option ] pid
jstack [ option ] executable core
jstack [ option ] [server-id@]remote-hostname-or-IP

相关参数如下:

  • -l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况
  • -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)

jstack可以导出线程堆栈,通过线程堆栈可以定位到具体代码。

线上报警的基本处理方案:

  • jps -l 得到java进行的进程id(13176)
  • top -H -p 13176 获得进程13176的线程占用资源情况
  • 按cpu使用情况排序(shift + p),观察线程占用cpu情况,得到最耗用CPU的线程id为20296
  • dump出线程堆栈信息, jstack 13176 >> jstack.log
  • 查找最耗cpu的线程的堆栈情况,printf '%x' 20296 (4f48)
  • 根据4f48查看堆栈的信息,定位具体代码分析问题

相关文章

  • JVM维护常用命令

    1. JPS jps工具位于%JAVA_HOME%\bin目录下,用于显示所有java进程pid的命令,适合在li...

  • jvm常用:命令 、参数

    jvm 常用命令: java -XX:+PrintFlagsFinal -version 查看所有jvm参数 如...

  • 阿尔萨斯-jvm

    Jvm jvm 检测工具 阿尔萨斯(Arthas) 安装 监控命令常用命令 dashboard(仪表盘) Thre...

  • JVM内存分析

    JVM常用命令 jps 查看所有的java进程ID jinfo 实时查看和调整JVM配置参数查看jinfo -fl...

  • JVM命令与调试工具

    JVM常用命令行命令 jps命令:查看系统中有哪些进程使用jvm虚拟机 扩展参数:jps -l;jps -mlv;...

  • jvm 调优 和gc 算法

    jvm 常用命令 : jmap jstat jinfo jps gc 算法 串行垃圾回收器(Serial ...

  • 【死磕JVM】什么是JVM调优?

    想要学习JVM调优,我们必须提前知道他们的一些参数,这样才方便我们更好的去使用他们 JVM常用命令行参数 JVM的...

  • FGC排查基础知识

    排查思路及常用命令 1、查看java进程 ps -ef | grep java jps 2、检查JVM配置 ps ...

  • 跟着sleep看jvm线程变化

    jvm线程是维护了线程的状态。new,running,waiting,timed waiting,blocked,...

  • JVM调优

    前言 本系列系统的介绍了jvm调优及相关工具的使用。笔者会先介绍jvm的基本概念,然后介绍常用命令、常用工具,最后...

网友评论

      本文标题:JVM维护常用命令

      本文链接:https://www.haomeiwen.com/subject/tcqmqxtx.html