php-fpm 進程管理的三種模式

php-fpm進程管理一共有三種模式:ondemand、static、dynamic

 

ondemand

在php-fpm啓動的時候,不會給這個pool啓動任何一個worker,是按需啓動,當有連接過來纔會啓動。

優缺點

優點:按流量需求創建,不浪費系統資源(在硬件如此便宜的時代,這個優點略顯雞肋)

缺點:由於php-fpm是短連接的,所以每次請求都會先建立連接,建立連接的過程必然會觸發上圖的執行步驟,所以,在大流量的系統上master進程會變得繁忙,佔用系統cpu資源,不適合大流量環境的部署

 

dynamic

在php-fpm啓動時,會初始啓動一些worker,在運行過程中動態調整worker數量,worker的數量受限於pm.max_children配置,同時受限全局配置process.max

 

優缺點

優點:動態擴容,不浪費系統資源,master進程設置的1秒定時器對系統的影響忽略不計;

缺點:如果所有worker都在工作,新的請求到來只能等待master在1秒定時器內再新建一個worker,這時可能最長等待1s;

 

static

php-fpm啓動採用固定大小數量的worker,在運行期間也不會擴容,雖然也有1秒的定時器,僅限於統計一些狀態信息,例如空閒worker個數,活動worker個數,網絡連接隊列長度等信息。

 

發佈了117 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章