您当前的位置:首页 > 计算机 > 系统应用 > Linux

9.54. Linux 环境下如何查找哪个线程使用CPU最长

时间:12-14来源:作者:点击数:

这是一个比较偏实践的问题,这种问题我觉得挺有意义的。可以这么做:

  1. 获取项目的 pid, jps 或者 ps -ef | grep java ,这个前面有讲过
  2. top -H -p pid,顺序不能改变

这样就可以打印出当前的项目,每条线程占用CPU时间的百分比。注意这里打出的是 LWP,也就是操作系统原生线程的线程号,我笔记本山没有部署Linux环境下的Java工程,因此没有办法截图演示,网友朋友们如果公司是使用Linux环境部署项目的话,可以尝试一下。

使用 "top -H -p pid"+"jps pid" 可以很容易地找到某条占用CPU高的线程的线程堆栈,从而定位占用CPU高的原因,一般是因为不当的代码操作导致了死循环。

最后提一点, "top -H -p pid" 打出来的LWP是十进制的, "jps pid" 打出来的本地线程号是十六进制的,转换一下,就能定位到占用CPU高的线程的当前线程堆栈了。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐