1:static 模式(靜態模式)
static 模式始終會保持一個固定數量的子程式,這個數量由pm.max_children
的配置決定
2:dynamic 模式(動態模式)
子程式的數量是動態變化的,啟動時,會生成固定數量的子程式,可以理解為最小子程式數,通過 pm.statr_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
設定太小,無法避免伺服器頻繁建立程式的問題。
涉及到的引數配置:
pm.max_children
:靜態方式下開啟 php-fpm 程式數量pm.start_servers
:動態方式下的起始 php-fpm 程式數量pm.min_spare_servers
:動態方式下的最小 php-fpm 程式數量pm.max_spare_servers
:動態方式下的最大 php-fpm 程式數量
PHP-FPM 慢日誌配置
配置檔案:php-fpm.conf
開啟慢日誌查詢:
slowlog = /usr/local/log/php-fpm.log.slow
request_slowlog_timeout = 5s
意思是當某個請求時間超過了5秒,就寫進慢日誌,注意是5s,別忘了單位。其他單位還有m分,h時,php-fpm會記錄對應的程式號,指令碼名稱,具體執行慢的程式碼行好等。
本作品採用《CC 協議》,轉載必須註明作者和本文連結