手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

php-fpm進程分配

2016-08-12 00:56:18 10512


在fasgcgi模式下,php會啟動多個php-fpm進程,來接收nginx發來的請求,那是不是進程越多,速度就越快呢?這可不一定!得根據我?的機器配置和業務量來決定。


我們先來看下,設定進程的配置在哪里?


pm = static | dynamic | ondemand

pm可以設置成這樣3種,我們用的最多的就上前面2種。


pm = static 模式


pm = static 表示我們創建的php-fpm子進程數量是固定的,那么就只有pm.max_children = 50這個參數生效。你啟動php-fpm的時候就會一起全部啟動51(1個主+50個子)個進程,頗為壯觀。


pm = dynamic 模式


pm = dynamic模式,表示啟動進程是動態分配的,隨著請求量動態變化的。他由 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 這幾個參數共同決定。


pm.max_children = 50 是最大可創建的子進程的數量。必須設置。這里表示最多只能50個子進程。


pm.start_servers = 20 隨著php-fpm一起啟動時創建的子進程數目。默認值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。這里表示,一起啟動會有20個子進程。


pm.min_spare_servers = 10 

設置服務器空閑時最小php-fpm進程數量。必須設置。如果空閑的時候,會檢查如果少于10個,就會啟動幾個來補上。


pm.max_spare_servers = 30 

設置服務器空閑時最大php-fpm進程數量。必須設置。如果空閑時,會檢查進程數,多于30個了,就會關閉幾個,達到30個的狀態。


到底選擇static還數dynamic?


很多人恐懼癥來襲,不知道選什么好?


一般原則是:動態適合小內存機器,靈活分配進程,省內存。靜態適用于大內存機器,動態創建回收進程對服務器資源也是一種消耗。


如果你的內存很大,有8-20G,按照一個php-fpm進程20M算,100個就2G內存了,那就可以開啟static模式。如果你的內存很小,比如才256M,那就要小心設置了,因為你的機器里面的其他的進程也算需要占用內存的,所以設置成dynamic是最好的,比如:pm.max_chindren = 8, 占用內存160M左右,而且可以隨時變化,對于一半訪問量的網站足夠了。


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: