jstack jstat 简易使用教程
jstack – 用来查看堆栈信息
jstat – 用来查看JVM相关信息
jstack用法
- 找到CPU使用最高的进程;
top命令,然后按P,CPU使用率排序,就可以看到对应的pid - 先说一种暴力的方法,直接jstack [pid] 就可以直接查看堆栈信息,使用jstack [pid] > test.txt将内容写入到文件中方便查询;
- 通过pid找到,CPU使用率最高的线程
top -Hp [pid] -
找到线程id后,转为16进制
printf
"%x\n"
[id]
-
然后jstack [pid] | grep [id],可以查看最高CPU使用的线程
jstat用法
语法结构: Usage: jstat -help|-options jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] 参数解释: Options — 选项,我们一般使用 -gcutil 查看gc情况 vmid — VM的进程号,即当前运行的java进程号 interval– 间隔时间,单位为秒或者毫秒 count — 打印次数,如果缺省则打印无数次 S0 — Heap上的 Survivor space 0 区已使用空间的百分比 S1 — Heap上的 Survivor space 1 区已使用空间的百分比 E — Heap上的 Eden space 区已使用空间的百分比 O — Heap上的 Old space 区已使用空间的百分比 P — Perm space 区已使用空间的百分比 YGC — 从应用程序启动到采样时发生 Young GC 的次数 YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒) FGC — 从应用程序启动到采样时发生 Full GC 的次数 FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒) GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒) |
实例
jstat -gc [pid] 1000 |
-gcutil 关注gc的情况
1000 1000ms刷新一次