jstack介绍 jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或导出 java 应用程序中线程堆栈信息。 jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如 ...
分类:
Web程序 时间:
2020-03-04 15:00:54
阅读次数:
104
常用工具及命令 jps jstat Top jstack jmap mat工具 top -Hp pid可以查看某个进程的线程信息 -H 显示线程信息,-p指定pid jps:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称及进程pid 如:jps -l pid Jstack命令 jstack是 ...
分类:
其他好文 时间:
2020-02-29 00:25:59
阅读次数:
94
问题:我们看线上业务日志 和 查看jstack文件时 线程的名字经常的序号导致很难区分是哪一个线程,这个线程都在干什么 比如举例1: 下面这个业务log日志,根据线程名字不知道这是哪个线程类 如果是线程池的话,看到所有的线程都是以 pool- 开头的,那是因为人家就是写死的。如果要修改线程名字,那么 ...
分类:
编程语言 时间:
2020-02-19 19:13:28
阅读次数:
109
jps 类的pid jstat 使用: jstat -gcutil pid 1000 //1000是毫秒是监控时间间隔 YGC 是young gc 的占的内存的百分比,YGCT是young gc 次数 FGC 是Full gc占内存的百分比,FGCT是 Full gc 的次数, GCT是总gc 的平 ...
分类:
其他好文 时间:
2020-02-06 21:32:35
阅读次数:
91
JVM第一弹基本概念JVM是可运行java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收、堆和一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。运行过程我们都知道Java代码源文件,通过编译器能够产生相应的.Class字节码文件,而字节码文件又通过Java虚拟机中的解释器,编译成特定机器上的机器码。①Java源文件——>编译器——>字节码文
分类:
其他好文 时间:
2020-02-04 12:18:29
阅读次数:
64
问题描述 如果java层面发生了死锁,当我们使用jstack命令的时候其实是可以将死锁的信息给dump出来的,在dump结果的最后会有类似Found one Java-level deadlock:的关键字,接着会把发生死锁的线程的堆栈及对应的同步锁给打印出来,这次碰到一个系统就发生类似的问题,不过 ...
分类:
其他好文 时间:
2020-02-03 18:53:07
阅读次数:
53
在分析 CPU、内存、磁盘等的性能指标时,有几种工具是高频出现的,如 top、vmstat、pidstat,这里稍微总结一下: CPU:top、vmstat、pidstat、sar、perf、jstack、jstat; 内存:top、free、vmstat、cachetop、cachestat、sa ...
分类:
其他好文 时间:
2020-02-01 00:35:20
阅读次数:
110
背景 有处理过生产问题的同学基本都能遇到系统忽然缓慢,CPU突然飙升,甚至整个应用请求不可用。当出现这种情况下,在不影响数据准确性的前提下,我们应该尽快导出jstack和内存信息,然后重启系统,尽快回复系统的可用性,避免用户体验过差。本文针对CPU飙升问题,提供该问题的排查思路,从而能够快速定位到某 ...
分类:
编程语言 时间:
2020-01-13 01:15:11
阅读次数:
124
堆内存:在JVM开启的时候就会被创建存放对象实例,几乎所有的对象实例都在这里分配内存存放由new创建的对象和数组,即动态申请的内存都存放在堆内存 栈内存: 栈内存是用来存放在函数中定义的一些基本类型的变量和对象的引用变量例子:局部变量存放在栈;函数调用参数,函数返回值,函数返回地址存放在栈 方法区: ...
分类:
其他好文 时间:
2020-01-08 14:39:18
阅读次数:
80
现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock C ...
分类:
Web程序 时间:
2020-01-06 12:48:30
阅读次数:
103