2010-12-10 51 views
0

我的網站上有幾張圖片和一個css文件,這些圖片並不存在於服務器上,所以每次訪問者都會在其日誌中拋出3 404個錯誤。這些項目隱藏在頁面上,因此不會影響頁面的顯示。我們的網站在測試和生產環境中表現良好。我們最近每天接收到2萬人次的流量高峯,每天有30,000-40,000人次訪問,並且Apache會放慢速度,等待22-25秒,然後再返回瀏覽器。破碎的css/image鏈接404錯誤是否會影響服務器在負載下的性能?

頁面上拋出的404錯誤是否會改變服務器的性能?

是一個404錯誤更多的資源密集,然後一個正常的請求?

任何信息:Apache處理404錯誤的方式將不勝感激。

感謝, Sj的

+0

取決於你是否在扔404文件? – ajreal 2010-12-10 18:00:53

+0

html頁面加載正常,有兩個圖像和一個從頁面調用的服務器上不存在的css文件。錯誤對最終用戶是不可見的。 – 2010-12-10 18:58:36

回答

0

正如評論員所說ajreal擔任文件將加大資源分配,但任何服務器響應請求將收購一些資源。

+0

沒有404文檔被拋出,用戶從不會看到任何錯誤。 404錯誤只出現在我們的apache日誌中。 – 2010-12-10 18:56:11

0

Apache對任何用戶交互進行的任何操作都會導致其他用戶的性能下降,即使它很小 - 幾乎看不見。

軟件(內存智能)和硬件(物理限制和容量方面)都會執行多個操作來正確回答和/或記錄用戶交互。

在這種情況下,當您的用戶(30,000-40,000)訪問該站點時,Apache仍然需要記錄所有這些錯誤以滿足由配置設置的日誌記錄首選項。由於日誌文件只是gard磁盤上的文本文件,因此硬盤太忙而無法對實際網站內容執行讀取和寫入操作。

如果Apache將404錯誤作爲文檔加載,服務器的負載將會更高。 無論如何,提高服務器性能的最佳方法是徹底擺脫404錯誤。

您還可以將Apache配置文件中的MaxRequestsPerChild參數增加到1000左右,以減輕從一箇中央Apache進程到多個子進程的壓力。這將允許多個Apache進程跨越新進程,同時增加對所有CPU核心的壓力,而不僅僅是一個。

有這麼多的觀衆我也建議改變你的Apache配置的MPM來是這樣的:

<IfModule prefork.c> 
StartServers  2 
MinSpareServers 2 
MaxSpareServers 5 
ServerLimit  100 
MaxClients   100 
MaxRequestsPerChild 4000 
</IfModule> 
0

按照網站上的前端engeneering雅虎指令

*號404

HTTP請求價格昂貴,因此提出HTTP請求並獲得無用的響應(即404 Not Found)是完全沒有必要的,並且會減慢用戶體驗而沒有任何好處。 有些網站有幫助404s「你的意思是X?」,這對用戶體驗很好,但也浪費了服務器資源(如數據庫等)。特別糟糕的是,當到外部JavaScript的鏈接錯誤並且結果是404時。首先,此下載將阻止並行下載。接下來,瀏覽器可能會嘗試解析404響應正文,就好像它是JavaScript代碼一樣,試圖找到可用的東西。*

回到你的問題:錯誤404可以在最壞的情況下導致你的機器停下來。

相關問題