1. 程式人生 > >給自己看的apache的三種工作模式

給自己看的apache的三種工作模式

1、prefork MPM 非執行緒 預派生的web伺服器,在Apache啟動之初,就預派生一些子程序等待連線,可以減少頻繁建立和銷燬程序的開銷,也不用擔心執行緒安全問題,但是一個程序相對佔用資源,消耗大量記憶體,不擅長處理高併發的場景。配置方式<IfModule mpm_prefork_module>        StartServers                     5        MinSpareServers             5        MaxSpareServers             5        MaxRequestWorkers       250        MaxConnectionsPerChild 1000</IfModule>2、worker  MPM worker使用了多程序和多執行緒的混合模式,預派生一些子程序,子程序創造執行緒,同時包括一個監聽執行緒,執行緒通過共享父程序的記憶體空間,記憶體佔用會減少一些,如果執行緒出現問題也只是影響Apache的一部分而不是全部。
但是在使用Keep-alive長連線的時候,某個執行緒會被一直佔用,即使沒有請求也需要等待超時才會被釋放。配置方法<If Module mpm_worker_module>        StartServers                          3        ServerLimit                         16        MinSpareThreads                75        MaxSpareThreads                250        ThreadsPerChild                    25
        MaxRequestWorkers            400        MaxConnectionsPerchild    1000</IfModule>3、Event MPM     最新的工作模式    它解決了keep-alive長連線時佔用執行緒資源問題,會有一些專門的執行緒用來管理這些keep-alive型別的執行緒,當伺服器的執行緒處理結束後,又允許它釋放。增加了在高併發場景下的處理能力。<IfModule    mpm_event_module>        StartServers                    3        ServerLimit                    16
        MinSpareThreads          75        MaxSpareThreads          250        ThreadsPerChild            25        MaxRequestWorkers      400        MaxConnectionsPerChild   1000</IfModule>