几种线上问题排查常用的java命令

JVM性能调优监控工具之jps、jstack、jmap、jhat、jstat

jps(查看进程)、jstack(查看线程)、jmap(查看内存)、jhat(分析jmap生成的堆转储快照)、jstat(性能分析)

jps

  • 查看所有的jvm进程,包括进程ID,进程启动的路径等等。
  • 也可以使用PS,即:ps -ef | grep java

jstack

  • 观察jvm中当前所有线程的运行情况和线程当前状态。

jmap

  • 监视进程运行中的jvm物理内存的占用情况,该进程内存内,所有对象的情况,例如产生了哪些对象,对象数量

jhat

  • Sun JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看。不过在实际工作中,一般都不会去直接使用jhat命令来分析dump文件,主要原因有二:一是一般不会在部署应用程序的服务器上直接分析dump文件,即使可以这样做,也会尽量将dump文件复制到其他机器上进行分析,因为分析工作是一个耗时而且消耗硬件资源的过程,既然都要在其他机器进行,就没有必要受到命令行工具的限制了;另一个原因是jhat的分析功能相对来说比较简陋,后文将会介绍到的VisualVM,以及专业用于分析dump文件的Eclipse MemoryAnalyzer、IBM HeapAnalyzer 等工具,都能实现比jhat更强大更专业的分析功能。

jstat

  • jstat利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对进程的classloader,compiler,gc情况;
  • 特别的,一个极强的监视内存的工具,可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量,以及加载类的数量

jinfo

  • 观察进程运行环境参数,包括Java System属性和JVM命令行参数

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容