Java cpu飙升问题排查

1.top 命令

Java cpu飙升问题排查_第1张图片

可以看到进程5192的cpu使用率最高

名称代表的含义如下:

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

2. top -Hp 5192

找到进程5192占用cpu高的线程6189

3.把线程id转换为16进制

printf %x 6189

4.查看该进程

jstack 5192|grep '182d' -A 20

Java cpu飙升问题排查_第2张图片

5.排查原因

 

你可能感兴趣的:(Java cpu飙升问题排查)