- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
在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左右,而且可以隨時變化,對于一半訪問量的網站足夠了。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP