php-fpm運行原理和模式的簡單介紹

不言
發布: 2023-04-05 13:06:02
轉載
3431 人瀏覽過

這篇文章帶給大家的內容是關於php-fpm運作原理和模式的簡單介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

運作原理:

cgi初始化階段:分別呼叫fcgi_init()和 sapi_startup()函數,註冊進程訊號以及初始化sapi_globals全域變數。

php環境初始化階段:由cgi_sapi_module.startup 觸發。實際呼叫php_cgi_startup函數,而php_cgi_startup內部又呼叫php_module_startup執行。 php_module_startup主要功能:a).載入和解析php配置;b).載入php模組並記入函數符號表(function_table);c).載入zend擴充; d).設定禁用函式和類別庫配置;e).註冊回收記憶體方法;

php-fpm初始化階段:執行fpm_init()函數。負責解析php-fpm.conf檔案配置,取得進程相關參數(允許進程開啟的最大檔案數等),初始化進程池及事件模型等操作。

php-fpm運行階段:執行fpm_run() 函數,執行後主程序發生阻塞。此階段分為兩部分:fork子程序 和 循環事件。 fork子進程部分交由fpm_children_create_initial函數處理( 註:ondemand模式在fpm_pctl_on_socket_accept函數建立)。循環事件部分透過fpm_event_loop函數處理,其內部是一個死循環,負責事件的收集工作。

運行模式

php-fpm支援三種運行模式,分別為static、ondemand、dynamic,預設為dynamic 。

static: 靜態模式,啟動時分配固定的worker進程。

ondemand: 按需分配,當收到使用者請求時fork worker進程。 ondemand: 按需分配,當收到使用者請求時fork worker進程。

dynamic: 動態模式,啟動時分配固定的進程。伴隨著請求數增加,在設定的浮動範圍調整worker進程

以上是php-fpm運行原理和模式的簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板