CLI模式生命週期 FPM的三種模式

2021-10-25 10:30:07 字數 1460 閱讀 9004

cli宣告週期

php_module_startup 模組初始化

php_request_startup  請求初始化

php_execute_script  讀取php**進行語法解析->ast抽象語法樹->opcode->執行得到對應結果

php_request_shutdown 請求關閉

php_module_shutdown 模組關閉

1.static模式

static模式始終會保持乙個固定數量的子程序,這個數量由pm.max_children定義。

2.dynamic模式

子程序的數量是動態變化的,啟動時,會生成固定數量的子程序,可以理解成最小子程序數,通過pm.start_servers控制,而最大子程序數則由pm.max_children控制,子程序數會在pm.start_servers~pm.max_children範圍內波動,另外,閒置的子程序數還可以由pm.min_spare_servers和pm.max_spare_servers兩個配置引數控制。換句話說,閒置的子程序也可以由最小數目和最大數目,而如果閒置的子程序超過pm.max_spare_servers,則會被殺掉。

3.ondemand模式

這種模式和dynamic模式相反,把記憶體放在第一位,每個閒置程序在持續閒置了pm.process_idle_timeout秒後就會被殺掉。有了這個模式,到了伺服器低峰期,記憶體自然會降下來,如果伺服器長時間沒有請求,就只有乙個主程序,當然其弊端是,遇到高峰期或者pm.process_idle_timeout設定太小,無法避免伺服器頻繁建立程序的問題。

kill sigusr1 php-fpm 重新開啟日誌檔案(釋放舊的檔案控制代碼,開啟新的檔案控制代碼 ) 可用於日誌切割

kill sigusr2 php-fpm 平滑過載所有worker程序且重新載入配置檔案還有二進位制模組

修改 fpm 將 pm設定為static 且pm.max_children = 1

檢視到php-fpm

➜  nginx ps aux|grep php-fpm

root 43490 0.0 0.2 150564 2596 ? ss 15:34 0:00 php-fpm: master process (/home/desktop/data/php/php-7.1.0-debug/php-7.1.0/output/etc/php-fpm.conf)

nobody 43491 0.0 0.3 152848 3484 ? s 15:34 0:00 php-fpm: pool www

kill 43490 結果不能服務 web訪問 520 bad gateway

kill -9 43490 此命令 只殺掉master worker程序還在。所以還能服務 master程序不負責請求,只負責重啟worker等工作

kill 43491 還能服務,master會啟動另外乙個worker程序來服務

HPC系統資料生命週期的三種形態詳解

手持電腦 hpc 的主要功能應包括 運算處理 資料儲存 輸入輸出 資料通訊和系統擴充套件五方面,軟體和硬體的有機結合是充分實現這些功能的必要條件。集群計算以及部門和工作組高效能計算系統大型計算能力的持續增長已經對儲存架構提出了挑戰。輸出資料的傳統儲存方法是通過乙個或多個經由儲存區域網路 san 或直...

spring bean的生命週期(三)

bean建立 初始化 銷毀的過程 容器管理bean的生命週期 我們可以自定義初始化和銷毀方法 容器在bean進行到當前生命週期的時候來呼叫我們自定義的初始化和銷毀方法 構造 物件建立 單例項 在容器啟動的時候建立物件 多例項 在每次獲取的時候建立物件 beanpostprocessor.postpr...

三種實現多執行緒的方式以及常用方法,生命週期的過程。

實現多執行緒的三種方式 呼叫start方法進入就緒狀態,就緒狀態的執行緒也叫可執行狀態。表示當前具有搶奪cpu時間片的權力 執行權 獲取當前執行緒物件thread y thread.currentthread public class threadtese01 class mythread exte...