CPU占用过高的定位分析思路
- 先用top命令找出CPU占比最高的进程
- ps -ef 或者jps 进一步定位到应用,找出哪个后台程序?
- 定位到具体的线程或代码
- ps -mp 进程 -o THREAD, tid, time(-m:显示所有的线程,-p pid进程使用cpu的时间,-o:该参数的后面是用户自定义的格式)
- 将需要的线程ID转换为16进制格式
- pringf “%x\n” 线程ID
- jstack 进程ID | grep tid(16进制ID的小写英文)-A60(-A60 : 打印前60行)
Linux 常用排查问题的命令
- 整机负载查看,主要关注cpu、内存、右上角的三个值
top
- 系统的负载查看
vmstat -n 2 3
- 内存使用情况查看
free -h
- 磁盘使用情况
df -h
- 磁盘IO负载查看
iostat
- 网络IO负载查看
ifstat