面试系列:经典解析-CPU飙升问题

第1步,使用top命令找到占用CPU高的进程。
    在使用top命令之后,可以看到一个列表,其中包含PID(进程ID)、USER(操作用户)、CPU占用率、内存占用率、TIME+(运行时间)、COMMAND(运行命令)等信息。一般默认按CPU占用率从上到下降序排列

第2步,使用ps –mp命令找到进程下占用CPU高的线程ID。
    ps -mp 进程ID -o thread.tid.time
    在这个列表中包含了几个关键字段,比如CPU占用率、TID(线程ID)、TIME(运行时间)等。在这个列表中找到CPU占用最高的线程,记下TID,也就是线程ID

第3步,使用printf命令将线程ID转换成十六进制数。
    printf "%x\n" 线程ID
    TID是一个十进制数,不能直接使用,需要转化为十六进制数

第4步,使用jstack命令输出线程运行状态的日志信息。
    jstack PID(a转换后的线程ID) | grep TID -A60 >> error_log.txt

你可能感兴趣的:(面试)