Java问题性能优化分析工具介绍(三) fastThread

Java问题性能优化分析工具介绍(三) fastThread

首页休闲益智fast.io更新时间:2024-04-21

一般线程dump后都是人工去分析,今天就给大家推荐一款线上Java线程Dump分析工具fastThread。

首先什么是Thread Dump

Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是大多都提供了当前活动线程的快照,及JVM中所有Java线程的堆栈跟踪信息,堆栈信息一般包含完整的类名及所执行的方法,如果可能的话还有源代码的行数。

Thread Dump特点

能在各种操作系统下使用,能在各种Java应用服务器下使用,可以在生产环境下使用而不影响系统的性能,可以将问题直接定位到应用程序的代码行上。

Thread Dump 能诊断的问题

查找内存泄露,常见的是程序里load大量的数据到缓存;发现死锁线程。

Thread Dump最常用的两种方式

Thread dumps 能帮助我们判断 CPU 峰值、死锁、内存异常、应用反应迟钝、响应时间变长和其他系统问题。一些在线的分析工具 也能帮助我们分析和定位问题,但是这些工具都要求有一个 dump 文件。

Dump 文件有很多种方式可以获取到,由于笔者经常是linux上开发或者运行程序,所以介绍两种最常用的方式。

jstack

jstack 是一个抓取 thread dump 文件的有效的命令行工具,它位于 JDK 目录里的 bin 文件夹下(JDK_HOME\bin),以下是抓取 dump 文件的命令:

jstack -l <pid> > <file-path>

说明:

pid: Java 应用的进程 id ,也就是需要抓取 dump 文件的应用进程 id。

file-path: 保存 dump 文件的路径。

示例:

jstack -l 37320 > /opt/tmp/javaThread.txt

fastThread分析Dump

上传javaThread.txt到http://fastthread.io/进行分析,如下图:

这样就会出一个关于这个Thread Dump的全方面分析报告,方便你定位相关问题。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved