java 程序占CPU100%问题的解决过程

自己开发的java 程序,运行几个小时后CPU暴涨到100%,重启应用后恢复正常,但过几个小时问题依旧爆发。怀疑是程序里面出现了死循环。因为程序中有几个定时自动执行的任务,问题很可能就出现在这里。接下来是怎么定位问题点了,linux 系统:

1. 用top 命令查看占用资源最多PID(进程):

   

    可以看出占cpu最大的pid 是1020

2.根据进程的PID查看执行时间最长的TID(线程ID):ps -mp 1020 -o THREAD,tid,time;

    

    可以看出占cpu最大的TID 是 1084

3.将TID转换成16进制打印:printf "x%\n" TID  (设转换后的值为HTID)

   

4.jstack PID|grep -i HTID  -A 30 

   


交给程序员去处理程序中的bug ,扣其一个鸡腿!

你可能感兴趣的:(java 程序占CPU100%问题的解决过程)