1152浏覽量

優化Apache提高并發量

來源: 時間:2017-06-19

并發參數設置

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers       8
MinSpareServers    32
MaxSpareServers   64
ServerLimit      10240
MaxClients       10000
MaxRequestsPerChild  10000

prefork的工(gōng)作原理是,控制進程在最初建立”StartServers”個子進程後,
爲了滿足”MinSpareServers”設置的需要創建一(yī)個進程,
等待一(yī)秒鍾,繼續創建兩個,再等待一(yī)秒鍾,繼續創建四個……如此按指數級增加創建的進程數,最多達到每秒32個,
直到滿足 MinSpareServers設置的值爲止。
這就是預派生(shēng)(prefork)的由來。這種模式可以不必在請求到來時再産生(shēng)新的進程,從而減小(xiǎo)了系統開(kāi)銷以增加性能。

MaxSpareServers設置了最大(dà)的空閑進程數,如果空閑進程數大(dà)于這個值,apache會自動kill掉一(yī)些多餘進程。
這個值不要設得過大(dà),但如果設的值比MinSpareServers小(xiǎo),apache會自動把其調整爲MinSpareServers+ 1。
如果站點負載較大(dà),可考慮同時加大(dà)MinSpareServers和MaxSpareServers。

MaxRequestsPerChild設置的是每個子進程可處理的請求數。
每個子進程在處理了”MaxRequestsPerChild” 個請求後将自動銷毀。
0意味着無限,即子進程永不銷毀。雖然缺省設爲0可以使每個子進程處理更多的請求,但如果設成非零值也有兩點重要的好處:
可防止意外(wài)的内存洩漏;在服務器負載下(xià)降的時侯會自動減少子進程數。
因此,可根據服務器的負載來調整這個值。但也不能太小(xiǎo),不然系統不斷的開(kāi)啓新的apache進程,造成資(zī)源浪費(fèi)。

MaxClients是這些指令中(zhōng)最爲重要的一(yī)個,設定的是apache可以同時處理的請求,是對apache性能影響最大(dà)的參數。
其缺省值 150是遠遠不夠的,如果請求總數已達到這個值(可通過ps -ef|grep http|wc -l來确認),那麽後面的請求就要排隊,直到某個已處理請求完畢。
這就是系統資(zī)源還剩下(xià)很多而http訪問卻很慢(màn)的主要原因。

其它參數設置

ServerTokens Prod – 隐藏服務器版本信息,隻顯示 apache

ServerSignature Off

HostnameLookups Off

Timeout 5 – 請求超時時間

KeepAlive On

KeepAliveTimeout 5

MaxKeepAliveRequests 100

關閉不需要的模塊
注釋掉加載該模塊,及相關配置項

聯系我(wǒ)們

一(yī)次需求提交或許正是成就一(yī)個出色産品的開(kāi)始。
歡迎填寫表格或發送合作郵件至: qczsky@126.com

大(dà)理青橙科技

電(diàn)話(huà):13988578755 13988578755

郵箱:qczsky@126.com

地址:大(dà)理市下(xià)關龍都春天10層