1

我正在调试在 IIS 7 上运行 ExpressionEngine(一个 PHP 应用程序)时遇到的缓慢问题。

我不认为这实际上是 ExpressionEngine 的问题,而是我的 PHP/MySQL 设置的问题。

问题就这样表现出来了:

  1. 转到网站地址
  2. IE“旋转”10-15 秒,等待加载。在这段时间:
    • 服务器上的处理器使用率最低,PHP 的进程处于非活动状态
    • 我在 MySQL 中看到了站点用户的连接,但该线程更多地处于“睡眠”状态。
    • 服务器上有大量可用内存
    • 几乎,服务器什么也没做
  3. 10-15 秒后,我看到连接 MySQL 运行了一些非常快速的查询(非常快),并且站点在一秒钟内加载。

这是一个相当复杂的站点,但是整个系统只是坐在那里等待 10 秒 - 不处理任何东西是没有任何意义的。我在 IIS7 上使用 FastCGI,它似乎工作正常,对我来说,这似乎是某种超时问题,FastCGI、PHP 甚至 MySQL 正在等待某些东西,没有得到它,并且在超时发生之后,继续处理。

有人有类似的经历吗?

谢谢!

PS - 我还应该补充一点,数据库(MySQL)和 PHP 在同一台服务器上运行。

4

3 回答 3

2

mysql 可能正在尝试对来自 Web 服务器的连接进行反向 DNS。如果您不需要按 DNS 名称过滤 mysql 连接,则将skip-name-resolve添加到您的 mysql 配置文件中

于 2009-09-11T17:18:39.167 回答
2

Twitter 插件会在 CMS 系统中引起很多问题。通常有一个功能可以检查 twitter 是否存在/活着。当 twitter 变得忙碌时,这会减慢系统速度(这就是为什么它会显示为断断续续的) 找到 twitter 插件,以及检查 twitter 是否存在的例程。注释掉这段代码并返回 true(即,不要问 twitter 是否存在,假设它存在)

于 2010-02-01T00:06:15.170 回答
0

我不知道为什么,但解决方案是安装 PHP 5.3。我运行了 PHP 5.2.10,我猜 5.3 为 Windows 添加了一些广泛的优化。或者修复了一些其他奇怪的问题——谁知道呢。

实际上,经过进一步挖掘,问题似乎出在 Twitter 插件上。有时它会等待 25 秒从 Twitter 回来并出现错误。也许这与DNS有关?

于 2009-09-11T23:53:26.233 回答