跟踪并纠正 PHP 性能问题

跟踪并纠正 PHP 性能问题

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

我认为问题出在我的 PHP 配置上,具体原因是:

  • 静态页面请求只需 0.5 秒或更短时间即可满足
  • 对已保存的 PHP 页面静态版本的请求的响应速度与其他静态页面一样快。
  • 基于 PHP 的页面的请求需要 5 秒以上才能满足,无论它们是否向数据库发出请求
  • 无论是通过主机名还是 IP 访问服务器,延迟都会持续存在,因此这不是 DNS 问题
  • 查看vmstat请求过程中显示换入和换出均为 0,因此这不是页面文件抖动
  • 查看top请求过程中的情况显示,没有任何 apache 进程占用超过 2-3% 的 CPU 时间,因此不受 CPU 性能的限制
  • 查看请求期间的 apache 日志显示基于 PHP 的页面的 GET 请求、5 秒的延迟,然后是 PHP 页面加载的第一个 CSS 文件的请求。

基于此,我确信问题出在 PHP 配置上,但 PHP 配置对我来说很陌生。我有哪些方法可以改善 PHP 性能?我应该检查哪些常见问题?

该服务器的主要用例是运行基于 Joomla CMS 的网站,但该问题似乎与 Joomla 无关,因为所有 PHP 页面都存在性能问题。

针对 Zoredache 的问题做出澄清:

  • 在服务器上,运行time curl http://127.0.0.1/foo/速度很快——十分之一秒。
  • 在本地网络的其他地方,运行速度time curl http://10.1.0.1/foo/很慢 - 至少 5 秒。

答案1

Rasmus(PHP 的创建者)就 PHP 性能做了一个完整的演讲http://talks.php.net/show/digg(有一段他演讲的视频,但我不记得在哪里了,如果我找到它会更新这篇文章)

编辑;
视频是这里

答案2

您是否使用 DNS 名称作为资源地址,例如数据库服务器地址?如果是,请尝试将其替换为 IP 地址,看看速度是否提高。这可能是一种快速的胜利。

否则我建议你尝试使用https://github.com/facebook/xhprof找到你的瓶颈

相关内容