客戶端 mod_overload:重載
在我的一個主機上,我有時會收到生成 503 響應的錯誤。
$$ notice $$[客戶端 mod_overload:過載,1 分鐘平均負載,目前負載:101,允許的最大負載:90
我試圖用Google搜尋它,但沒有太多關於這個錯誤的資訊,也沒有關於 mod_overload 本身的資訊。
我的猜測是,如果一次請求的數量超過了允許的數量,這個 mod 會發送 503 程式碼。
有人可以確認我是否正確,如果不是,它會做什麼。
PS:我已向託管公司發送電子郵件進行解釋,但也希望從獨立來源獲得答复。
編輯:
Apache 模組正在檢查平均負載,當它高於定義時停止目前請求(也有能力停止其他請求)。由於可以為每個目錄/虛擬主機/位置設置 0.2 設置。
對我來說,這一段並沒有給出關於這個模組如何工作的解釋,或者更準確地說它是如何計算平均負載的。它考慮了哪些變數,它只是 CPU 和記憶體使用情況,也許是並行請求的數量?一個網站的程式碼可能有多大的影響?
我遇到這個問題的網站不是我開發的,但我只是修改它並找到這個錯誤的來源。它有一些質量很差的程式碼,每個請求都有很多 PHP 警告,這些警告總是寫入日誌文件。會不會是負載增加的原因?
聽起來您在共享網路託管伺服器上,它無法處理傳入的 http 請求(不僅適用於您的網站,也適用於所有人)。確保不會發生這種情況的一種方法是擁有一定程度的專用資源並通過使用 VPS 或專用伺服器來託管您的站點來控制它們的分配。否則,您對這類事情無能為力;除了找到一個不會使他們的伺服器超載的網路主機之外 - 即使這樣,您也很容易受到來自共享同一伺服器的站點的流量峰值的影響。
如果您不了解伺服器上的平均負載代表什麼,我建議您進一步了解該伺服器上正在滿足哪些資源以及它如何對您的個人網站性能產生不利影響。Apache 正在丟棄 http 請求,因為此時 CPU 正忙於做其他事情 - 很可能服務於其他 http 請求。從我對http://sourceforge.net/projects/modoverload/的閱讀來看,這似乎是這個 apache 模組的確切目的,基本上為虛擬主機和站點提供了一個可調元素,以確保它們中的任何一個或集群都沒有餓死伺服器上的其餘站點以獲取基本資源。