我试图find瓶颈,目前我正在脚本中logging时间,但是对于某些操作来说似乎是随机的。 有没有一种工具可以让我看到在某个[apache]请求期间发生了什么事情,以查明CPU是否一直在烧,或者是在等待其他事情呢?
这是一个分析的问题; 你需要把一个分析工具连接到这个过程并得到真正的结果。 对于真正的穷人的分析,我只是用strace来附加它; 使用定时标志( -T -r )通常会给我一个关于系统调用花费时间的好主意,以及过程本身是否正在磨合。 有更好的东西在外面,但他们更加面向开发人员。
如果你使用的是Windows操作系统,那么SysInternals的免费工具可能是最好的开始。 Process Explorer工具非常适合监视活动进程,什么叫他们,以及正在发生什么动作。 SysInternals使下载SysInternals套件工具变得非常简单。 这有点像美国运通卡,不要离开家。
希望这有助于一些。
还有其他东西要检查,如果可以的话,就是监视服务器的性能。
也许你的磁盘队列是尖峰的,也许你在RAID中有一个失败的驱动器,也许你的内存不足,等等…
你可以看到一些像procstat这样的工具的更多细节。 你给它一个PID,它解码/ proc / $ pid / stat文件,它可以告诉你一些有趣的内部的东西,比如它使用的CPU jiffies的数量,或者它的孩子使用的。