在Linux中,进程分为三种状态,一种是阻塞的进程blocked process(等待I/O设备的数据或者系统调),一种是可运行的进程runnable process,另外就是正在运行的进程running process。
一、CPU异常原因及如何追踪
流程执行命令:
1.top #查到pid 28555
top -H -p 进程号 #查看异常线程
2.ps -ef | grep java,查看所有的java进程,查看所有的java进程,在结果中找到进程号为12836的进程,,即可查看是哪个应用占用的该进程。
3.#pwd 32277 #查看Linux程序的工作目录,进而定位到负责人和项目;
4.显示线程列表 ps -mp 28555 -o THREAD,tid,time 查到tid 28802
5. printf "%x\n" 28802 # 将线程id,tid进行16进制转换
6.jstack pid |grep tid -A 30 #显示堆栈信息
jstack 28555 |grep 28802 -A 30
或者
jstack 进程PID | vim +/十六进制线程PID - // 例如:jstack 1040|vim +/0x431 -
1、首选发现CPU飙升,服务器卡死&