利用top命令和pstack排查linux进程CPU使用率过高的问题

Posted ydqun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用top命令和pstack排查linux进程CPU使用率过高的问题相关的知识,希望对你有一定的参考价值。

pstack 命令
Linux 系统中可以通过 pstack 命令查看一个进程的线程数量和每个线程的调用堆栈情况,用法为 pstack process_id
首先我们可以用top命令查看是哪个进程CPU使用率过高。
例如在我的linux服务器上

 

   我们可以看到thread_create_c进程对CPU的占用率达到100%

   接着我们使用pstack命令观察一下该进程下所有线程的堆栈调用情况。

 

   在 pstack 输出的各个线程中,只要逐一对照我们的程序源码来梳理下该线程中是否有大多数时间都处于空转的逻辑,然后修改和优化这些逻辑就可以解决 CPU 使用率过高的问题了。

   在这里,我贴出thread_create_c进程对应的程序的源码。

   

 

 

 

 

 

以上是关于利用top命令和pstack排查linux进程CPU使用率过高的问题的主要内容,如果未能解决你的问题,请参考以下文章

排查程序死循环,死锁的方法 ——pstack

linux c程序高cpu,排查记录

linux 下使用top命令 查看某个进程下线程的运行情况

pstack

LINUX 编程定位工具gstack,pstack

java应用线上CPU过高问题排查