Linux 命令查问题
角度: 整机,CPU,内存,硬盘,磁盘IO,网络IO.
- 整机: a.
top
:load average: V(1min), V(5min), V(15min)
, b.uptime
: 轻top
- CPU:
-
vmstat -n <INTERVAL> <#SAMPLE>
, e.g.vmstat -n 2 3
-
mpstat -P ALL <INTERVAL>
: m: 所有 pidstat -u 1 -p PID
-
- 内存:
-
free -m
,free
pidstat -p PID -r <INTERVAL>
-
- 硬盘:
df -h
- 磁盘IO:
iostat -xdk <INTERVAL> <#SAMPLE>
, e.g.iostat -xdk 2 3
- 网络IO:
ifstat 1
CPU占比过高
怎么排查?
快准狠: 结合Linux和JDK命令分析,直接找到出问题的地方.
-
top
: 概览 -
ps -ef|grep PID
或者jps
定位PID
(进程id) -
ps -mp PID -o THREAD, tid, time
定位到具体tid
(线程id) -
jstack PID|grep tid(HEX) -A60
,tid(HEX)
:16进制的tid
;-A60
:前60行
这样就直接找到了出问题的线程和该线程的问题
further JDK命令:
jps
jinfo
-
jmap
: 内存映射工具 -
jstat
: 统计信息监测工具 -
jstack
: 堆栈异常跟踪工具 jvisualvm
jconsole