PHP App(ExpressionEngine)在IIS 7,MySQL,FastCGI上加载速度慢

时间:2009-09-11 17:11:09

标签: mysql iis-7 fastcgi

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

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

问题就这样显现出来了:

  1. 转到网站地址
  2. IE“旋转”10-15秒,等待加载。在这段时间:
    • 服务器上的处理器使用率最低,而且PHP的进程处​​于非活动状态
    • 我在MySQL中看到了网站用户的连接,但线程处于“休眠”状态。
    • 服务器上有足够的可用内存
    • 几乎,服务器正在做 nothing
  3. 10-15秒后,我看到连接MySQL运行一些非常快速的查询(非常快),并且网站在一秒钟内加载。
  4. 这是一个相当复杂的网站,但它没有任何意义,整个系统只是坐在那里等待10秒 - 没有处理任何东西。我在IIS7上使用FastCGI,这似乎工作得很好,对我而言,这似乎是某种超时问题,其中FastCGI,PHP,甚至MySQL正在等待某些事情,而不是获取它,并且在超时发生之后,继续处理。

    有人有类似的经历吗?

    谢谢!

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

Twitter插件会导致CMS系统出现大量问题。通常有一个函数可以检查twitter是否存在/活着。当Twitter忙碌时,这会降低系统的速度(这就是为什么它会出现间歇性)找到twitter插件,以及检查twitter是否在那里的例程。注释掉这段代码并返回true(即不要询问twitter是否存在,只是假设它是这样)

答案 2 :(得分:0)

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

实际上,在进一步挖掘之后,问题出现在Twitter插件上。它等了25秒才从Twitter回来并出错。也许这与DNS有关?