PHP FPM程序模型解析

2022-06-09 18:24:06 字數 1190 閱讀 3829

先說一下php-fpm的程序模型,php-fpm採用的是master/worker程序模型。當php-fpm啟動時,會讀取配置檔案,然後建立乙個master程序和若干個worker程序(具體是幾個worker程序是由php-fpm.conf中配置的個數決定)。worker程序是由master程序fork出來的。

master程序和worker程序的作用:

php-fpm程序管理方式有動態(dynamic)、靜態(static)、按需(ondemand)三種,下面將一一介紹。

動態(dynamic) 在這種方式下,php-fpm啟動時會建立一定數量的worker程序。當請求數逐漸增大時,會動態增加worker程序的數量;當請求數降下來時,會銷毀剛才動態建立出來的worker程序。在這種方式下,如果配置的最大程序數過大,當請求量增加時會出現大量worker程序,程序之間會頻繁切換,浪費大量cpu資源。

下面的三個引數可以配置worker程序的數量:

靜態(static) 這種方式下,php-fpm啟動時會建立配置檔案中指定數量的worker程序,不會根據請求數量的多少而增加減少。因為php-fpm開啟的每個worker程序同一時間只能處理乙個請求,所以在這種方式下當請求增大的時候,將會出現等待的情形。

下面的引數可以配置worker程序的數量: pm.max_children:靜態方式下開啟的php-fpm程序數量。

按需(ondemand) 在這種方式下,php-fpm啟動時,不會建立worker程序,當請求到達的時候master程序才會fork出子程序。在這種模式下,如果請求量比較大,master程序會非常繁忙,會占用大量cpu時間。所以這種模式不適合大流量的環境。

在nginx+php-fpm的架構中,web伺服器是如何與php-fpm通訊的呢?

當使用者請求乙個http位址時,nginx會收到請求,然後將請求**給php-fpm,php-fpm收到請求後會將請求**給乙個空閒的worker程序。當worker程序處理完後會將結果返回給nginx,ngixn再講內容返回給使用者。

檢視php fpm程序數 php fpm程序數設定

1.php fpm有3種管理方式static 子程序數固定 dynamic 子程序動態設定 onedemand 程序需要才產生 2.php fpm 程序數主要通過下面5個引數 pm.max children pm為static時表示建立的子程序數量,pm為dynamic時表示最大可建立的子程序數 p...

PHP FPM程序數修改

php fpm優化引數介紹 他們分別是 pm pm.max children pm.start servers pm.min spare servers pm.max spare servers。pm 表示使用那種方式,有兩個值可以選擇,就是static 靜態 或者dynamic 動態 在更老一些的...

php fpm程序數優化

需要了解的引數是 pm pm.max children pm.start servers pm.min spare servers pm.max spare servers。pm 表示使用那種方式,有兩個值可以選擇,就是static 靜態 或者dynamic 動態 在更老一些的版本中,dynamic...