程序占用cpu过高问题解决

原创
2016/06/16 19:33
阅读数 697
  • 现象:登录机器发现有卡顿现象,于是top发现负载特别高,并且发现一进程占满cpu
  • 定位:记录下该进程号,然后top -Hp <pid>找出占用cpu过高的几个线程,记录线程id,根据这几个线程id到程序线程栈中找出对应的线程。

             (上面这部分没有保存操作截图)

            jstack <pid>打印线程栈,

            把其中一个占用cpu过高的线程id=23564换算成16进制为5C0C,到线程栈中查找:

            

            根据代码行定位到对应的线程。

  • 解决:最终发现这是一个轮询线程,每次轮询应该停顿一段时间释放cpu,在轮询里面加入代码Thread.sleep(100);即可解决问题。
展开阅读全文
加载中

作者的其它热门文章

打赏
0
4 收藏
分享
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部