2009-09-11 53 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是否存在,只是假設它是)

相關問題