Apache 每 2-3 週就會掛起,並且 close_wait 連線數會不斷增加,直到重新啟動為止

Apache 每 2-3 週就會掛起,並且 close_wait 連線數會不斷增加,直到重新啟動為止

我們有 3 個伺服器的叢集設置,在所有 3 個伺服器上都運行 weblogic 來託管網站。在 weblogic 之上使用 Apache 作為負載平衡器。

去年我將 Apache http 伺服器從 2.4.9 升級到 2.4.29。升級前,一切正常,但升級後,Apache 每 2-4 週就會掛起一次。網站變得無法訪問,在檢查伺服器時我們沒有看到任何錯誤,事實上,當 Apache 掛起時,它也停止了日誌記錄。

我們監控並發現在問題發生之前沒有異常的記憶體使用情況,沒有對網站的可疑類型的請求,也沒有可疑的進程在運行。

經過網上查找,發現問題可能與MPM配置有關。 Apache 正在使用事件 MPM,但我發現事件 MPM 配置未在 apache 配置中聲明,我認為在升級過程中預設配置已被舊配置取代。

因此,我們修改了 MPM 配置以使用以下事件 mpm 配置,並且此變更有效。接下來的 6 個月我們沒有遇到這個問題。

StartServers 4 MinSpareThreads 256 MaxSpareThreads 512 ThreadsPerChild 64 MaxRequestWorkers 2048 MaxConnectionsPerChild 0

我們認為它已修復,但現在6 個月後Apache 再次掛起,我們只能看到在接下來的1 小時內close_wait 連接從20 個增加到550 個的症狀,網站無法訪問,apache 停止記錄其ssl和錯誤日誌,我們不這樣做查看不同運行進程資料、記憶體使用情況中的任何異常行為,也沒有在問題發生之前看到任何可疑請求。

相關內容