2013-11-28 80 views
8

隨機HTTP請求資源 - 大約1-5%的時間(每個資源,而不是每頁加載) - 需要很長時間才能傳送到瀏覽器〜20秒),甚至無限期地懸掛。 (服務器詳細信息列在底部的列表中)。Apache - 資源隨機掛起(導致頁面加載速度緩慢)

由於JavaScript資源掛在<head>標籤內,因此這會導致對於任何頁面的大約每第5個請求都會掛起。儘管頁面加載(涉及PHP或Rails)也很少掛起,與任何其他資源(1-5%)相比,這些資源的平等機會也很少,但是這些資源是由css,js和小圖像文件直接提供的(不使用腳本語言)的時間),所以這似乎是一個Apache請求相關的問題。

其他信息:

  • 我已經檢查了server-status的閒散人員和預期,我仍然有我的閒散人員的98%。儘管這可能是相關的,因爲這些掛鉤適用於FastCGI沒有提供的靜態資源(資源是靜態的)。
  • 我不是唯一有這個問題的人。其他人也有同樣的問題,並從不同的IP地址。
  • 這發生在谷歌瀏覽器和Firefox作爲HTTP客戶端。
  • 我已經試過不斷強制刷新新選項卡中的相同的JS文件。它最終導致了同樣的懸掛。
  • 谷歌瀏覽器的時間選項卡報告等待34毫秒,接收其中一個掛起請求的時間爲19.27秒。這是否意味着Apache已經將文件內容準備好交付了,只是在合理的時間內交付文件有困難?
  • error.log不顯示任何錯誤。 error.log中有一些預期的404和500錯誤,但這些錯誤與掛起無關;那些是不存在的頁面和PHP致命錯誤的實際錯誤。
  • 我收到了一些可疑的206部分內容回覆,主要是針對靜態內容,雖然掛起發生的次數通常多於部分內容。我大多在每個地方都能得到200個OK響應,我可以無限期地確認在apache access.log中報告爲200 OK的掛起資源。
  • 我確實爲Redmine安裝了mod_passenger。我不知道這是否有幫助,但可疑的是這臺服務器安裝的不像我所使用的所有其他服務器。儘管mod_passenger不應該影響靜態內容,尤其是不在非ruby項目文件夾中,應該如何呢?
  • 該服務器在數字海洋上託管的Ubuntu 13.10上使用Apache 2.4 Event MPM。

什麼可能導致這些hangings,我怎麼能解決這個問題?

+0

你有沒有能夠達到這個底部?我有類似的問題,我認爲這與If-None_match和If-Modified-有關,因爲我認爲。當我在FireFox中進行強制頁面刷新並使用HttpFox觀察發生了什麼時,我可以看到這些頁面組件都非常慢,即使是我的Apache 2。4是在同一個盒子(win7x64)我有瀏覽器。喜歡你瀏覽器並不重要。如果我只是瀏覽到頁面就沒關係。只是當我爲測試做強制頁面刷新時。 –

+0

我還沒有得到它的底部。像我說的那樣,資源隨機加載速度緩慢。 95%的時間內任何http請求都會立即通過,5%的時間會掛起很長時間或永久掛起。我不認爲我的緩存標題與您所說的相關,因爲我使用的Chrome開發人員工具禁用了緩存,這意味着我甚至不會將這些標題發送出去。 –

+0

很抱歉聽到這個消息。有一天,我希望深入瞭解Apache源代碼並確定發生了什麼,但這是一個非常大的項目。祝你好運。謝謝。 –

回答

0

我有同樣的問題,所以在閱讀thread後,我嘗試在我的apache配置文件中設置KeepAlive Off,這似乎有所幫助 - 所有資源都預計等待時間到了。

不是一個很好的「修復」,但至少我更近一步找出原因,並且頁面在15秒內無法完全加載。