如果有有大流量的訪問需求,那麼你就會需要了解如何調整 Apache Web Server 以及作業系統的設定。
Apache MPM 模式
首先你可以先透過指令 apache2ctl -V | grep MPM
查看目前你的 Apache 是使用哪一種多重處理模組 (Multi-Processing Module, MPM)。有可能的選項會是「Event」和「Prefork」
Apache Prefork 模式
這個是傳統的穩定模式,在 prefork 模式下,Apache 會啟動多個子進程 (process),每個子進程只處理一個連線。當有新的連線進來時,就會由主進程派發給其中一個子進程處理。這樣的模式比較穩定,因為每個子進程都獨立運作,避免一個連線的問題影響到其他連線,但同時也較耗費資源。
修改 /etc/apache2/mods-enabled/mpm_prefork.conf
檔案
MaxRequestWorkers 4000
ServerLimit 4000
Apache Event 模式
這個是 Apache 2.4 版本預設的新模式,在 event 模式下,Apache 則是在主進程中啟動多個子執行緒 (thread),每個子執行緒可以同時處理多個連線。當有新的連線進來時,就會由主進程派發給其中一個子執行緒處理,當該子執行緒需要等待 I/O 操作時,就會將控制權交還給主進程,讓其他子執行緒繼續處理其他連線。這樣的模式比較節省資源,因為多個連線可以共享同一個子執行緒,但同時也比較複雜,需要處理多執行緒間的同步和競爭問題。
修改 /etc/apache2/mods-enabled/mpm_event.conf
檔案
MaxRequestWorkers 4000
ServerLimit 160
修改完成後重新啟動 Apache
service apache2 restart