情况1:CPU高、Load高
- 通过top命令查找占用CPU最高的进程PID;
- 通过top -Hp PID查找占用CPU最高的线程TID;
- 对于java程序,使用jstack打印线程堆栈信息;
- 通过printf %x tid打印出最消耗CPU线程的十六进制;
- 在堆栈信息中查看该线程的堆栈信息;
情况2:CPU低、Load高
- 通过top命令查看CPU等待IO时间,即%wa;
- 通过iostat -d -x -m 1 10查看磁盘IO情况;
- 通过sar -n DEV 1 10查看网络IO情况;
- 通过如下命令查找占用IO的程序;
ps -e -L h o state,cmd | awk '{if($1=="R"||$1=="D"){print $0}}' | sort | uniq -c | sort -k 1nr