AWS ELB Apache2 503 服務不可用:後端伺服器已滿
我們已經在亞馬遜 AWS 基礎設施上執行了幾個網站大約兩年了,大約兩天前,網路伺服器開始每天關閉一到兩次,我能找到的唯一錯誤是:
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
CloudWatch 未觸發警報(CPU/磁碟 IO/DB Conn)。我嘗試通過彈性 IP 訪問該站點以跳過 ELB 並得到以下資訊:
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers. Retrying.
我在 apache 日誌中沒有看到任何異常,並驗證了它們是否被正確輪換。當機器通過 SSH “關閉”時,我訪問機器沒有問題,查看程序列表我看到 151 個 apache2 程序對我來說似乎很正常。重新啟動 apache 暫時解決了這個問題。這台機器僅作為 ELB 後面的網路伺服器執行。任何建議將不勝感激。
CPU 使用率平均值:7.45%,最小值:0.00%,最大值:25.82%
記憶體使用率平均值:11.04%,最小值:8.76%,最大值:13.84%
掉期使用率平均值:N/A,最小值:N/A,最大值:N/A
/dev/xvda1 的磁碟空間使用率 / 平均:62.18%,最小值:53.39%,最大值:65.49%
讓我澄清一下,我認為問題出在單個 EC2 實例上,而不是 ELB 我只是不想排除這一點,即使我無法訪問彈性 IP。我懷疑 ELB 只是返回命中實際 EC2 實例的結果。
更新:2014-08-26 我應該早點更新,但“修復”是拍攝“壞”實例的快照並啟動生成的 AMI。從那以後它就沒有下降過。當我仍然遇到問題時,我確實查看了執行狀況檢查,
curl http://localhost/page.html
即使我從負載平衡器收到容量問題,也可以進入執行狀況檢查頁面 ( )。我不相信這是一個健康檢查問題,但由於包括亞馬遜在內的任何人都無法提供更好的答案,所以我將其標記為答案。謝謝你。更新:2015-05-06 我以為我會回到這裡並說我現在堅信的部分問題是健康檢查設置。我不想排除它們是 AMI 的問題,因為在替換 AMI 啟動後它肯定會好轉,但我發現每個負載均衡器的執行狀況檢查都不同,而且最麻煩的那個有一個非常激進的不健康門檻值和響應超時。我們的流量往往會以不可預測的方式飆升,我認為在激進的健康檢查設置和流量高峰之間,這是一場完美的風暴。
當 ELB 負載均衡器執行其執行狀況檢查並由於錯誤配置(通常使用 NameVirtual 主機)而收到“找不到頁面”(或其他簡單錯誤)時,您將收到“後端伺服器已滿負荷”。
嘗試使用“ELB-HealthChecker”使用者代理 grepping 日誌文件文件夾。例如
grep ELB-HealthChecker /var/log/httpd/*
這通常會給您帶來 4 倍或 5 倍的錯誤,這很容易修復。例如,Flooding、MaxClients 等對問題給予了太多的信任。
僅供參考亞馬遜:為什麼不顯示請求返回的響應?即使是狀態碼也會有所幫助。