Apache-2.2

遇到主機問題,任何人都可以推薦解決方案或其他主機選項嗎?

  • March 14, 2012

我有一個 PHP/MySQL Web 應用程序,每月獲得大約 600,000 次點擊。過去幾個月它一直執行良好,但最近伺服器出現 OOMing 和崩潰。記憶體崩潰之間的次數比較少,但現在最近兩天已經崩潰了兩次。當它執行時,它執行得非常快,我就是不能讓網站如此頻繁地關閉。

有沒有人對如何解決我的問題有任何想法,或者對另一個可能解決此問題的網路主機有任何建議。

我的伺服器設置:非託管 VPS(512MB 專用記憶體) 它執行 CentOS、Apache2 和 PHP 5.2。我只使用 PHP 和 MySQL 執行 Web 應用程序。我流行的應用程序是使用 cakePHP。我在這里托管其他網站,但它們的點擊率並不高。我需要自動備份。

似乎您遇到了不可預知的尖峰,並且 apache 的 MaxClients 指令超出了您的伺服器可以處理的範圍。

如果您使用的是 mpm_prefork,則每個請求都將由一個單獨的 apache 子程序處理,並且每個子程序都會消耗記憶體。

來自 apache 文件:“這個 MPM 是非常自我調節的,因此很少需要調整其配置指令。最重要的是MaxClients 足夠大,可以處理您期望接收的盡可能多的同時請求,但又足夠小以確保有足夠的物理記憶體供所有程序使用。 ”(http://httpd.apache.org/docs/2.0/mod/prefork.html

檢查每個 apache 程序消耗的記憶體大小,並嘗試調整您的 MaxClients、MinSpareThreads 和 MaxSpareThreads 指令以適應可用記憶體。

此外,您可以將 MaxRequestsPerChild 指令設置得較低,以避免在應用程序導致記憶體洩漏時出現 OOM 錯誤。不要設置得太低。如果這樣做,您將遇到 CPU 瓶頸,因為孩子會經常被殺死和創建。

此外,較大的 KeepAliveTimeout 可以讓您的 apache 孩子不必要地忙於已經完成的請求。我肯定會在你的 apache 配置中檢查一下。有關 apache 保持活動指令的更多資訊,請閱讀http://httpd.apache.org/docs/2.0/mod/core.html

最後,考慮購買更多記憶體。

總而言之,我相信您需要對 Apache 進行調整/調整。現在,忘記指責網路託管公司……

引用自:https://serverfault.com/questions/369435