查看给定进程的 CPU 使用率细目分类的最佳方法是什么?

查看给定进程的 CPU 使用率细目分类的最佳方法是什么?

我正在尝试查找瓶颈,目前正在脚本中记录时间,但某些操作的时间似乎是随机的。是否有一个工具可以让我查看某个 [apache] 请求期间发生的情况的细分,以追踪 CPU 是否一直在消耗,或者是否在等待其他东西?

答案1

这是一个分析问题;您需要将分析工具连接到进程并了解实际发生的情况。对于真正简单的分析,我只需使用 strace 将其连接到它;使用计时标志 ( -T -r) 通常可以让我很好地了解哪些系统调用占用了时间,以及进程本身是否只是在缓慢运行。有更好的东西,但它们更面向开发人员。

答案2

如果您使用的是 Windows 操作系统,那么 SysInternals 的免费工具可能是最好的起点。进程探索器工具非常擅长观察活动进程、调用它们的程序以及正在发生的操作。SysInternals 可以很容易地下载 SysInternals Suite工具。它有点像美国运通卡,出门时不用带。

希望这对一些人有帮助。

答案3

如果可以的话,还要检查的其他事项是监控服务器的性能。

也许您的磁盘队列正在激增,也许您的 RAID 中有一个驱动器出现故障,也许您的内存不足,等等......

答案4

你可以使用类似以下工具查看更多详细信息前列腺素你给它一个 PID,它会解码 /proc/$pid/stat 文件,该文件可以告诉你一些有趣的内部信息,比如它已经使用的 CPU jiffies 数量,或者它的子进程已经使用的 CPU jiffies 数量。

相关内容