pstack 命令
Linux 系统中可以通过 pstack 命令查看一个进程的线程数量和每个线程的调用堆栈情况,用法为 pstack process_id
首先我们可以用top命令查看是哪个进程CPU使用率过高。
例如在我的linux服务器上
我们可以看到thread_create_c进程对CPU的占用率达到100%
接着我们使用pstack命令观察一下该进程下所有线程的堆栈调用情况。
在 pstack 输出的各个线程中,只要逐一对照我们的程序源码来梳理下该线程中是否有大多数时间都处于空转的逻辑,然后修改和优化这些逻辑就可以解决 CPU 使用率过高的问题了。
在这里,我贴出thread_create_c进程对应的程序的源码。