調整apache的最大併發數

在默認狀況下,apache的最大併發數爲150,所以須要調整linux


首先搞清楚當前apache是什麼MPM(多路處理模塊)。通俗講就是apahce處理多併發的方式,常見的有三種apache


perfork,,worker,winnt模編程


prefork的工做原理併發


控制進程在最初創建「StartServers」個子進程後,爲了知足MinSpareServers設置的須要建立一個進程,等待一秒鐘,繼續建立兩 個,再等待一秒鐘,繼續建立四個……如此按指數級增長建立的進程數,最多達到每秒32個,直到知足MinSpareServers設置的值爲止。這就是預 派生(prefork)的由來.這種模式能夠沒必要在請求到來時再產生新的進程,從而減少了系統開銷以增長性能。性能


worker的工做原理網站


由主控制進程生成「StartServers」個子進程,每一個子進程中包含固定的ThreadsPerChild 線程數,各個線程獨立地處理請求。一樣,爲了避免在請求到來時再生成線程,MinSpareThreads和MaxSpareThreads設置了最少和最 多的空閒線程數;而MaxClients設置了全部子進程中的線程總數.若是現有子進程中的線程總數不能知足負載,控制進程將派生新的子進 程。 線程




利用httpd命令來控制進程


#httpd.exe -lci




當前爲winnt.c模式it


如何調整最大併發數


①  首先打開apache 的httpd.conf


?

1

2

3

# Server-pool management (MPM specific)

#打開mpm文件配置

Include conf/extra/httpd-mpm.conf

②  打開httpd-mpm.conf


  找到winnt模塊


?

1

2

3

4

5

6

<IfModule mpm_winnt_module>

    //最大併發連接數

    ThreadsPerChild      150

    //子進程能夠建立的最大進程數

    MaxRequestsPerChild    0

</IfModule>


對於併發數,推薦配置:


  若是咱們的網站是中型網站, 建議在1500-2500之間。


            由於在 linux 下,通常說採用的 MPM 是 perfork 模式,咱們看看如何配置 .

<IfModule mpm_prefork_module>


    StartServers          5


    MinSpareServers       5


    MaxSpareServers      10


    MaxClients          150   #併發量


    MaxRequestsPerChild   0  #一個進程對應的線程數,對 worker更用.


</IfModule>


給你們一個合理的建議配置. 對大部分網站,中型網站,配置:


<IfModule mpm_prefork_module>

              StartServers         5      #預先啓動

              MinSpareServers      5

              MaxSpareServers      10  #最大空閒進程

              ServerLimit          2500   #用於修改apache編譯參數

              MaxClients           2000   #最大併發數

              MaxRequestsPerChild  0


</IfModule>


若是你的網站pv值  百萬


ServerLimit          2500   #用於修改apache編程參數

MaxClients           2000   #最大併發數

相關文章
相關標籤/搜索