- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網(wǎng)數(shù)碼
在fasgcgi模式下,php會啟動多個php-fpm進程,來接收nginx發(fā)來的請求,那是不是進程越多,速度就越快呢?這可不一定!得根據(jù)我?的機器配置和業(yè)務量來決定。
我們先來看下,設定進程的配置在哪里?
pm = static | dynamic | ondemand
pm可以設置成這樣3種,我們用的最多的就上前面2種。
pm = static 模式
pm = static 表示我們創(chuàng)建的php-fpm子進程數(shù)量是固定的,那么就只有pm.max_children = 50這個參數(shù)生效。你啟動php-fpm的時候就會一起全部啟動51(1個主+50個子)個進程,頗為壯觀。
pm = dynamic 模式
pm = dynamic模式,表示啟動進程是動態(tài)分配的,隨著請求量動態(tài)變化的。他由 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 這幾個參數(shù)共同決定。
pm.max_children = 50 是最大可創(chuàng)建的子進程的數(shù)量。必須設置。這里表示最多只能50個子進程。
pm.start_servers = 20 隨著php-fpm一起啟動時創(chuàng)建的子進程數(shù)目。默認值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。這里表示,一起啟動會有20個子進程。
pm.min_spare_servers = 10
設置服務器空閑時最小php-fpm進程數(shù)量。必須設置。如果空閑的時候,會檢查如果少于10個,就會啟動幾個來補上。
pm.max_spare_servers = 30
設置服務器空閑時最大php-fpm進程數(shù)量。必須設置。如果空閑時,會檢查進程數(shù),多于30個了,就會關閉幾個,達到30個的狀態(tài)。
到底選擇static還數(shù)dynamic?
很多人恐懼癥來襲,不知道選什么好?
一般原則是:動態(tài)適合小內(nèi)存機器,靈活分配進程,省內(nèi)存。靜態(tài)適用于大內(nèi)存機器,動態(tài)創(chuàng)建回收進程對服務器資源也是一種消耗。
如果你的內(nèi)存很大,有8-20G,按照一個php-fpm進程20M算,100個就2G內(nèi)存了,那就可以開啟static模式。如果你的內(nèi)存很小,比如才256M,那就要小心設置了,因為你的機器里面的其他的進程也算需要占用內(nèi)存的,所以設置成dynamic是最好的,比如:pm.max_chindren = 8, 占用內(nèi)存160M左右,而且可以隨時變化,對于一半訪問量的網(wǎng)站足夠了。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP