获取每个线程的 CPU 统计信息

vir*_*tor 18 linux threads

我对特定应用程序中的每个线程当前的 cpu 使用情况感兴趣——准确地说是 cpu% 和 wait%。是否有可能从某个地方获取该信息?

我知道top可以按真实线程(带有 pid 的线程)拆分信息,但它没有显示每个线程的系统/用户/等待 cpu 使用情况拆分。我还想要某种方式来记录该信息。您知道任何可以做到这一点的应用程序(或 API)吗?

小智 18

top -H -p pid 
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助


lex*_*sys 13

您可以使用ps命令获得每个线程的 CPU 使用百分比:

 ps -emo %cpu,pid,user,args
Run Code Online (Sandbox Code Playgroud)

它的计算方式描述于ps manpage

目前,它是使用的 CPU 时间除以进程运行的时间(CPU 时间/实时比率),以百分比表示。

  • 自我提醒:`ps -To pcpu,tid -C java | 排序 -r -k1 | 更多`用于Java应用程序中的猪线程。`ps --sort=pcpu` 一无所获;最好依靠外壳进行排序部分。 (4认同)

Mei*_*Mei 5

我会研究SystemTap。这个工具肯定会给你你想要的。有这种谱的线程例子; 不知道它是否具有您想要的所有功能,但您可以对其进行修改以使其具有。