1. 程式人生 > >php-fpm進程管理方式(static和dynamic)

php-fpm進程管理方式(static和dynamic)

一個 get php-fpm com star cgi php-cgi title min

目前最新5.3.x的php-fpm,有兩種管理進程的方式,分別是static和dynamic。

如果設置成static,進程數自始至終都是pm.max_children指定的數量,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers配置將沒有作用。

如果設置成dynamic,則進程數是動態的,最開始是pm.start_servers指定的數量,如果請求較多,則會自動增加,但不超過 pm.max_children指定的數量,同時保證空閑的進程數不小於pm.min_spare_servers,如果進程數較多,也會進行相應清理, 保證多余的進程數不多於pm.max_spare_servers。

當php-fpm啟動後,一個php-cgi進程約戰3M內存,但是當它們處理過一些請求後,有些內存是釋放不掉的,占用的內存能達到20M-30M不等。

對於內存比較吃緊,同時並發量不是很大的應用,可以考慮采用static的方式,這樣可以很好的控制php-fpm的所消耗的總內存數,讓系統更加 平穩運行。另外由於並發量很小,可以適當的把設置pm.max_requests小一些,以便讓php-fpm進程有機會重啟,從而釋放其占用的內存。

php-fpm進程管理方式(static和dynamic)