我怎样才能find究竟哪个PHP脚本占用了所有的服务器资源?

如果Web服务器运行缓慢,是否有办法查看哪些文件负责?

编辑:

Debian操作系统与Apache2 Web服务器

如果你想弄清楚哪个用户的脚本正在占用你的资源,你可以使用apache itk mpm,它在你select的用户/组下运行虚拟主机。 每个请求都会分派一个以该用户身份运行的apache进程。 因此,ps / top输出将显示哪个用户正在运行脚本(以及哪个虚拟主机) – 缺点是itk显然比较慢。 – 由于使用普通的prefork或者worker,mpm的apache在一个进程中处理多个请求,所以很难判断哪个请求正在吃掉你的mojo。

如果您正在试图找出PHP应用程序中的哪些函数正在使用您的资源,那么您将不得不使用xdebug。 很明显,xdebug分析方法将是一个php应用程序的一次性检查,而不是找出哪个脚本属于共享主机环境中的哪个用户正在消耗cpu时间的解决scheme。

缺less一些有用的信息:

  1. OS?
  2. http守护程序?

编辑:你检查了正常的进程在顶部,iostat,fuser,lsof Linux机器上寻找工具吗?

有一件事我做,这有点低效,但我有一个每分钟运行一个cron作业,它使用curl将http://localhost/server-status的输出保存到date和时间作为文件名。 这样我就可以将这些文件在networking浏览器中进行查看,并查看当时哪些url正在被访问。 对许多这些脚本使用最多的资源进行编译。 但它不是很准确,只是一个快速和肮脏的方式来看看发生了什么事情。

要获得准确的表示,请使用其他人build议的分析器。

让我知道,如果你想看到cron的工作。