本文章参考http://blog.csdn.net/shamofeiyu/article/details/21336557,受益匪浅,特收藏,感谢作者。

1.linux系统CPU占用率高,首先需要查看那些进程cpu占用率高,这个通过top 命令,可以查看,

ec6f4a8a617716ca45ca75ed02330a34.png

可见,我这里是n1l.bin 占用了几乎100% CPU,并且可看到进程id = 1526

2.进一步分析n1l.bin 里那些线程cpu占有率高,通过 pstree -f (进程pid) 命令查看进程下所有线程的pid,n1l.bin的id = 1526,输入 pstree -s 1526

f49e734ee2ad4da453383ed92f6e5c8b.png

分析发现,上面列车的线程数量,正好等于n1l.bin开启的线程数量,验证了准确性。

3.参考http://blog.csdn.net/shamofeiyu/article/details/21336557,打印出n1l.bin各线程的id,编写脚本stat.sh

3ba95ff7bb947e80634686f0d08209f3.png

编写运行脚本stat.sh,得到如下结果

260c16e34236191e91607a5f6b6f182f.png

可以看到:线程1528 1529 1530 1533 1538 cpu使用时间长,对应具体线程,

com_send RdThread WrThread DataSd_Thread Server27000_Thread

4.定位具体线程,分析什么原因导致cpu使用率高

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐