文章预览
一、发现问题的系统检查 一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多。 二、定位故障 根据这种故障的一般处理思路,先找出问题进程内CPU占用率高的线程,再通过线程栈信息找出该线程当时在运行的问题代码段,操作如下: 根据思路查看高占用的“进程中”占用高的“线程”,追踪发现7163的进程中16298的线程占用较高,使用命令: top -Hbp 7163 | awk '/java/ & & $9>50' 显示结果: 将16298的线程ID转换为16进制的线程ID。 printf "%x\n" 16298 3faa 通过jvm的jstack查看进程信息,发现是调用数据库的问题。 jstack 7163 | grep "3faa" -A 30 显示结果: 既然是数据库的问题就检查数据库,思路是先打印了所有在
………………………………