2009-09-11 89 views
1

我正在调试一个缓慢的问题我已经与IIS 7PHP应用程序(ExpressionEngine)慢于IIS 7中,MySQL,FastCGI的

我不跑ExpressionEngine(PHP应用程序)加载了t认为这实际上是ExpressionEngine的一个问题,而是我的PHP/MySQL设置的一个问题。

问题示出了本身正是如此:

  1. 转到webite地址
  2. IE “旋转” 为10-15秒,等待加载。在此期间:
    • 处理器使用在服务器上最小的,和PHP的过程是不活跃
    • 我看到在MySQL网站用户的连接,但线程处于“沉睡”了。
    • 有足够的可用内存,服务器
    • 相当多,服务器正在做什么都不
  3. 10-15秒后,我看到了MySQL的连接运行一些真正快速查询(非常快)和该网站在一秒钟内加载。

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

任何人都有类似的经历?

谢谢!

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

回答

0

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

事实上,在进一步挖掘之后,问题出现在Twitter插件中。它有一段时间等待25秒从Twitter回来。也许这与DNS有关?

2

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

+0

嗯....奇怪 - 我做了这个改变,并且对于瞬间(1请求)它似乎已经解决了这个问题 - 该网站立即飞起来。但在下次尝试加载网站时,它又一次缓慢。也许成功的负载只是缓存。否则,它似乎没有修复它。:( – 2009-09-11 17:44:00

+0

你做了这个改变后重新启动了mysql服务吗? – longneck 2009-09-11 18:15:58

+0

是的 - 我重新启动了它。在我的应用程序的config.php中,它使用“localhost”作为服务器名,PHP和MySQL都运行在相同的服务器 - 这可能仍然会导致反向查找问题吗? – 2009-09-11 18:18:56

2

Twitter插件在CMS系统中引发了很多问题。通常有一个函数可以检查twitter是否在/活着。当叽叽喳喳忙时,这会减慢系统(这就是为什么它可以表现为间歇性)找到叽叽喳喳插件,以及例程,检查叽叽喳喳在那里。注释掉这段代码并返回true(即不要问twitter是否存在,只是假设它是)