如何定位CPU占用过高问题
2017-04-01 09:27
726 查看
程序运行后出现CPU占用过高,一般是代码有死循环等。top命令可以查看CPU使用情况,找到问题进程。
对CPU使用过高的进程的所有线程进行排序
ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep xxx
得到CPU占用率最高的线程的线程号,比如2907进程的线程2909
使用gdb
gdb
gdb>attach 2907
gdb>info threads
列出所有线程信息,发现2909线程编号12
切换线程,bt打印线程栈
gdb>thread 12
gdb>bt
根据打印的信息,重点定位相关代码段。
对CPU使用过高的进程的所有线程进行排序
ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep xxx
得到CPU占用率最高的线程的线程号,比如2907进程的线程2909
使用gdb
gdb
gdb>attach 2907
gdb>info threads
列出所有线程信息,发现2909线程编号12
切换线程,bt打印线程栈
gdb>thread 12
gdb>bt
根据打印的信息,重点定位相关代码段。
相关文章推荐
- 为什么Win7下鼠标唤醒和视频加速CPU占用过高?如何解决问题
- java问题导致linux负载、cpu过高如何定位
- 如何定位占用oracle数据库cpu过高的sql
- Java如何定位占用CPU比较高的问题
- 手游内存占用过高?如何快速定位手游内存问题
- linux下如何定位CPU占用高的进程的问题点
- VirtualBox cpu 占用过高问题的解决[转]
- Direct2d CPU占用过高的问题。
- 编辑Word文档时, 占用CPU资源过高问题
- DBA案例分析:如何解决CPU占用100%的问题
- Android mediaserver占用CPU过高的问题
- JAVA中hashmap.get()导致CPU占用过高问题
- 如何设置SQL Server服务器上面的CPU占用过高的警报
- Linux中如何精准定位JVM线程CPU过高
- sdl占用cpu过高的问题
- Linux下Chrome字体设置和启用OpenGL、GPU显卡加速解决Flash CPU占用过高的问题
- TSVNCache.exe占用CPU过高的问题
- 如何解决XP下使用IIS而inetinfo.exe进程占用CPU达100%的问题
- 解决Fedora 11下PulseAudio声音不能长时间稳定及占用CPU过高的问题
- mscorsvw.exe进程占用CPU过高问题的解决方法