高cpu进程排查方法

有时候对于C或者C++程序来说,会比较高的占用电脑cpu。
而且程序一般运行在linux环境下,刚好之前排查过这类问题,作个简单的记录。

一般采用三个步骤,可大致定位问题位置:
(1)使用 top 命令查看cpu占用较高的前几位程序,确定相应的进程。

(2)对于高占用cpu的程序,依次分析。使用 top -H -p PID,进一步查看该进程内,哪些线程在高占用cpu。将目标缩小到线程级别。

(3)使用strace -p 线程ID,进一步查看线程内,哪个函数调用在高占cpu。这样可以基础对照着代码查看。

本人要排查时,发现主要是对于系统函数的频繁调用会很容易导致高cpu,如对select或者poll的超时时间设置过短,导致频繁调用select或者poll等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章