Performance

Apache 2.4+ 中的 Apache MPM 事件

  • February 1, 2014

多年來,我一直在使用mpm-prefork模組,因為據我了解,這是 Apache 2 和 1.3 的首選工作程序。

現在我將安裝一些新的 Apache 伺服器並將使用更新的 2.4 版本,其中基於事件的 mpm 使用 epoll/kqueue。

我知道在過去的幾年裡,基於事件的系統已經風靡一時(例如 nginx、lighttpd、node.js),所以既然 mpm-event 現在在 Apache 中很穩定,這是首選的多處理模組嗎?

我還注意到了來自 mpm-event 文件頁面的評論:

改進的連接處理尚不適用於某些連接過濾器,尤其是 SSL。對於 SSL 連接,此 MPM 將回退到工作 MPM 的行為,並為每個連接保留一個工作執行緒。

我們的主站點強制使用 SSL 連接,因此很明顯,我們不會從與保持活動相關的改進連接處理中受益,但是我的理解是否正確,因為發生的執行緒會減少,所以仍然會有一些性能改進?

prefork MPM 多年來一直不是“首選” MPM。

它仍然是許多發行版的預設設置的原因是某些第三方庫在工作 MPM(自 2.2 版以來一直是首選 MPM)中的執行緒方面存在問題。

不是像 mod_php 這樣執行緒安全的模組,而是像 mod_php 這樣的模組使用的庫,比如 mysqli 等。

在 2.4 中,我們現在切換到 STABLE 事件 MPM。

該版本仍然非常新,文件尚未完全更新以反映這一點。

多年來一直如此,如果 prefork MPM 讓您感到痛苦,請切換到執行緒服務並通過 fastCGI 執行您的動態內容。

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