2012-12-03 22 views
0

我在學校的VLE上寫了一些JS腳本。在AJAX調用上調試潛在的網絡瓶頸

它使用UWA Widget Format並與本地託管的PHP腳本進行通信,它使用代理和AJAX請求。

最近我們將上述本地託管的服務器從一個可怕的基於XP的WAMP服務器轉移到運行IIS和FastCGI PHP的虛擬Server 2008發行版。

從那時起 - 也許是之前,我只是沒有注意到 - 我的AJAX調用開始運行超過1秒。

FireBug output

  • 我已經運行相關的PHP腳本對PHPMyAdmin的查詢,例如,相關getCategories SQL需要0.00023s跑,所以我不認爲問題出在那裏。
  • 我已經ping ed服務器,它一貫返回<1ms,因爲它應該爲一個相對較小規模的網絡上的本地網絡服務器。 VLE在同一個網絡上。

我的問題是:我可以採取哪些步驟來確定「瓶頸」可能在哪裏?

+0

很難_guess_,但是由於IIS在實際輸出之前緩存了所有內容,當它的工作完成時,有沒有可能「退出」你的'ajax.php'?另外,您可以在返回的文本中插入調試信息(例如運行時間)以查看會發生什麼情況。 – Passerby

回答

0

首先,測試腳本實際上是運行了多長時間: Simplest way to profile a PHP script

其次,你應該檢查服務器上的磁盤活動。如果它爲可用RAM量運行的FastCGI進程太多,它將會交換並且速度非常慢。如果磁盤活動非常高,那麼你知道你找到了你的罪魁禍首。通過減少fastcgi進程的最大數量或增加服務器RAM的數量來解決這個問題。