PHP-FPM的配置與優(yōu)化講解
PHP-FPM(FastCGI Process Manager:FastCGI進程管理器)是一個PHPFastCGI管理器,用于管理 PHP 進程池、接收和處理 Web 服務器的請求。PHP-FPM 會創(chuàng)建一個主進程,控制何時以及如何把 HTTP 請求轉(zhuǎn)發(fā)給一個或多個子進程處理。
全局配置
emergency_restart_threshold = 60(建議值)
如果子進程在 emergency_restart_interval 設定的時間內(nèi)收到該參數(shù)設定次數(shù)的 SIGSEGV 或者 SIGBUS退出信息號,則FPM會重新啟動。
emergency_restart_interval = 1m
用于設定平滑重啟的間隔時,單位:s(秒),m(分),h(小時)或者 d(天)。默認單位:s(秒)。
這個兩個設置的作用是,如果在指定的一段時間內(nèi)指定的子進程失效了,讓 PHP-FPM 重啟。
這個兩個設置默認是關閉的,建議開啟,
進程池配置
PHP-FPM 中有一個 Pool Definitions 的區(qū)域,意為進程池,通常建議一個 PHP 應用使用一個進程池。
PHP-FPM 配置文件有默認名為 www 的配置內(nèi)容。
user = 運行 PHP 的非 root 用戶
子進程運行的用戶。必須設置。
group = 運行 PHP 的非 root 用戶所屬的用戶組
子進程運行的用戶組。如果沒有設置,則默認用戶的組被使用。
listen = 127.0.0.1:9000
或者 /path/to/unix/socket
設置接受 FastCGI 請求的地址。
listen.allowed_clients = 127.0.0.1
設置允許連接到 FastCGI 的服務器 IP 地址。默認情況,這個字段是注釋掉了,建議開啟。
pm = 生產(chǎn)環(huán)境 static
設置進程管理器如何管理子進程??捎弥担簊tatic,ondemand,dynamic。
- static:子進程的數(shù)量是固定的(pm.max_children)。
- ondemand:進程在有需求時才產(chǎn)生(當請求時,與 dynamic 相反,pm.start_servers 在服務啟動時即啟動。
- dynamic:子進程的數(shù)量在下面配置的基礎上動態(tài)設置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers。
pm.max_children =
設置 PHP-FPM 進程池中最多能有多少個進程。這個沒有絕對正確值,要根據(jù)實際情況設置。
假設每個 PHP 進程使用 20-30M 內(nèi)存,為整個 PHP-FPM 環(huán)境配置了 512 M 內(nèi)存,那么可以設置為 17-25 中間值。
pm.start_servers =
設置啟動時創(chuàng)建的子進程數(shù)目。僅在 pm 設置為 dynamic 時使用。
pm.min_spare_servers =
設置空閑服務進程的最低數(shù)目。僅在 pm 設置為 dynamic 時使用。必須設置。
pm.max_spare_servers =
設置空閑服務進程的最大數(shù)目。僅在 pm 設置為 dynamic 時使用。必須設置。
pm.max_requests = 1000
設置每個子進程重生之前服務的請求數(shù)。對于可能存在內(nèi)存泄漏的第三方模塊來說是非常有用的。如果設置為 '0' 則一直接受請求,默認值:0。
slowlog =
慢請求的記錄日志。
注意 PHP-FPM 進程所屬的用戶和用戶組必須具有相應文件的寫權限。
request_slowlog_timeout = 5
當一個請求該設置的超時時間后,就會將對應的 PHP 調(diào)用堆棧信息完整寫入到慢日志中。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
php中如何同時使用session和cookie來保存用戶登錄信息
本篇文章是對在php中同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下2013-07-07PHP實現(xiàn)生成數(shù)據(jù)字典功能示例
這篇文章主要介紹了PHP實現(xiàn)生成數(shù)據(jù)字典功能,涉及php針對mysql常見的連接、數(shù)據(jù)表查詢、遍歷、table表格構(gòu)成等相關操作技巧,需要的朋友可以參考下2018-05-05php下防止單引號,雙引號在接受頁面轉(zhuǎn)義的設置方法
有時候我們在添加內(nèi)容時,單引號,雙引號會被轉(zhuǎn)義,用下面的方法即可解決2008-09-09利用phpExcel實現(xiàn)Excel數(shù)據(jù)的導入導出(全步驟詳細解析)
本人的這段例程是使用在Thinkphp的開發(fā)框架上,要是使用在其他框架也是同樣的方法,很多人可能不能正確的實現(xiàn)Excel的導入導出,問題基本上都是phpExcel的核心類引用路徑出錯,如果有問題大家務必要對路勁是否引用正確進行測試2013-11-11