跟踪和纠正PHP性能问题

我正在运行一个基于LAMP的小型Web服务器,基于PHP的页面似乎至less需要5秒才能呈现。

我相信这个问题是我的PHPconfiguration的一些问题,特别是因为:

  • 静态页面的请求需要0.5s或更less的时间来满足
  • PHP页面的保存静态版本的请求与其他静态页面一样快
  • 对基于PHP的页面的请求大于5秒,以满足他们是否向数据库发出请求
  • 无论是通过主机名还是通过IP访问服务器,延迟都会持续下去,所以这不是DNS问题
  • 在请求期间看vmstat显示0换入和换出,所以它不是页面文件抖动
  • 在请求期间查看top显示没有apache进程获得CPU时间的2-3%以上,所以它不受CPU性能的限制
  • 在请求期间查看apache日志会显示基于PHP的页面的GET请求,5秒延迟,然后请求加载PHP页面的第一个CSS文件。

在此基础上,我很确定问题出在PHPconfiguration上,但PHPconfiguration对我来说是陌生的。 我在这里改进PHP性能有什么select? 我应该检查哪些常见问题?

这个服务器的主要用例是运行一个基于Joomla CMS的站点,但是这个问题似乎与Joomla无关,因为所有PHP页面都会出现性能问题。

针对Zoredache的问题作出澄清:

  • 在服务器上,运行time curl http://127.0.0.1/foo/是快十分之一秒。
  • 在本地networking的其他地方,运行time curl http://10.1.0.1/foo/很慢 – 至less5秒。

Rasmus(PHP的创build者)在PHP性能方面做了一次全面的讨论http://talks.php.net/show/digg (他有一个video,他正在讲话的地方,但我不记得在哪里,如果我发现它,会更新这个post)

编辑;
video在这里

您是否使用资源地址的DNS名称,如数据库服务器地址? 如果是这样,请尝试用IP地址replace它们,看看速度是否提高。 这是一个可能的快速胜利。

否则,我build议你尝试使用https://github.com/facebook/xhproffind你的瓶颈