cpu高故障排查
PS命令
基本用法
ps 显示当前终端会话中属于当前用户的进程列表
ps -ef 显示系统中所有进程列表,包含其他用户的进程
ps -aux 显示详细的进程信息,包含cpu和内存的使用率等
常用参数
-e 显示所有进程
-f 使用全格式显示 pid ppid %cpu %user %mem等
-l 长格式
-u 显示指定用户相关进程 后面可指定用户名
-p 显示指定id的进程信息,后面可指定进程ID
-o 自定义输出格式 如ps -eo pid,ppid,cmd,user,%cpu,%mem --sort=-%cpu以cpu降序排列展示进程ID,父ID,命令行,用户,cpu,内存
TOP命令
基于语法
top
top -H 显示线程
c 以cpu降序排列
shift+m 以内存降序排列
java cpu高故障处理
1、先使用top命令查出占用cpu最高的java进程
2、top -Hp 指定该进程查看线程
3、使用printf将线程号转换为16进制
printf "%x\n" tid
4、使用jstack导出线程快照
jstack -l 进程号 >./result.txt
5、在该文件中查找第三步转换来的16进制位数
cat result.txt |grep -A 100 16进制号 16进制数前面有0x
cpu高故障排查
http://www.jcwit.com/article/512/