StartServers 5 M">
1536浏覽量

apache中(zhōng)MaxClients和ServerLimit參數介紹

來源: 時間:2017-06-19
在apache中(zhōng)我(wǒ)們有兩種工(gōng)作模式MaxClients和ServerLimit,它們在于apache性能上起到了很大(dà)的作用,下(xià)面我(wǒ)來給大(dà)家介紹MaxClients和ServerLimit參數詳解

prefork模式和worker模式參數詳解

使用httpd -l命令查看使用的線程模塊,一(yī)般是prefork.c和work.c兩者,前者居多。确定後修改http配置文件相應的部分(fēn),如prefork.c的:

代碼如下(xià)


StartServers 5
MinSpareServers 3
MaxSpareServers 10
ServerLimit 16
MaxClients 16
MaxRequestsPerChild 2000

這裏StartServers是開(kāi)始的進程數,MinSpareServers是最小(xiǎo)空閑進程數,MaxSpareServers是最大(dà)空閑進程數。MaxRequestsPerChild是每個進程請求這麽多次後就釋放(fàng)重新建立(爲0時永遠不釋放(fàng))。

這裏我(wǒ)們要說的重點就是ServerLimit和MaxClients值有什麽關系,這個值怎麽設置?

ServerLimit是最大(dà)的進程數,MaxClients是最大(dà)的請求并發,所以他們的關系是MaxClients=ServerLimit*進程的線程數。


1.對于perfork.c模塊,其特點是

每個子進程隻有一(yī)個線程。每個進程在某個确定的時間隻能維持一(yī)個連接。在大(dà)多數平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大(dà)得多。prefork的無線程設計在某些情況下(xià)将比worker更有優勢:它可以使用那些沒有處理好線程安全的第三方模塊。

既然是一(yī)個進程一(yī)個線程,所以在prefork.c下(xià),這兩個值是相等的。注:ServerLimit最大(dà)值爲2000.


2.對于work.c模塊來說,是多線程的,默認是一(yī)個進程有25個線程,因此如果設置ServerLimit爲100,那麽MaxClients最大(dà)可以設置爲2500。

prefork.c一(yī)個進程占用30-45m左右的内存(這個值跟PHP-fpm下(xià)php-cgi内存占用相當),所以如果有512m的内存話(huà),系統+mysql(最小(xiǎo)節約配置)吃掉250m左右,剩下(xià)的内存也就是跑10個進程,所以這個值真的是很可憐,不過對于流量小(xiǎo)的站點,這個并發也夠用了,一(yī)般跑個上千的流量不是問題。

聯系我(wǒ)們

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

大(dà)理青橙科技

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

郵箱:qczsky@126.com

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