Top可用于按整体CPU对进程/线程进行排序。如果只根据线程的系统CPU对其进行排序呢?我正在尝试调查服务器上系统CPU过高的情况,而strace根据线程进行的系统调用向我提供了系统时间的中断。但是,如何识别对系统CPU贡献最大的线程(本质上是执行最昂贵的syscall的线程)?
发布于 2017-01-05 05:52:36
strace报告的syscall可能与在内核中主动执行某些操作所用的时间相关,也可能与此无关。事实上,大多数时候你都不想看这个。
相反,你想要的是一张火焰记录仪,然后从那里开始。特别是,内核可能花费了大量的时间,甚至没有执行任何系统调用。
http://www.brendangregg.com/flamegraphs.html
https://stackoverflow.com/questions/41470512
复制相似问题