Worker MPM 還是 Prefork?

Worker MPM 還是 Prefork?

我知道這裡兩個模組之間有一個比較主題,但這是不同的。

我正在聯繫 cPanel 支援人員,以幫助我釋放 VPS 上的一些記憶體使用量。他們發現 Apache 2.4“httpd”子進程使用大約 80MB RSS,而在他們的測試伺服器上,類似的 Apache 2.4 版本每個 Apache 子進程只使用大約 3MB RSS。

在討論了這個問題一段時間後,他們建議切換到 Apache 2.4 中的 Worker MPM,而不是使用 Prefork。

我搜尋了他們所說的內容,發現 Worker MPM 使用較少的內存,但它不是線程安全的。網站上的其他一些主題表明 Worker 無法與 php 應用程式或 mod_php 一起使用。我不確定這是否正確。

我太迷茫了,該怎麼辦?我的帳戶上正在執行 php 腳本,不想中斷任何腳本或損壞資料。

你們有什麼建議?切換到 Worker MPM 是否可以在不中斷 php 應用程式的情況下解決記憶體不足的問題?

關於Apache的使用有什麼解決方案嗎?與 3MB RSS 相比,80MB RSS 太高了。

答案1

如果你必須使用 PHP 作為 Apache 模組,你應該使用 Prefork,因為正如你所說,PHP 預設會編譯為非執行緒安全的,而 Worker MPM 使用執行緒。

如果您可以使用 PHP 作為 FastCgi (PHP-FPM),則可以使用 Worker MPM。

順便說一句,當今部署 PHP 的最佳方法可能是使用 Nginx 和 PHP-FPM。

相關內容