日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux php-fpm优化 php-fpm.conf 重要参数详解

發布時間:2025/3/20 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux php-fpm优化 php-fpm.conf 重要参数详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pid = run/php-fpm.pid
#pid設置,默認在安裝目錄中的var/run/php-fpm.pid,建議開啟

error_log = log/php-fpm.log
#錯誤日志,默認在安裝目錄中的var/log/php-fpm.log

error_log = log/php-fpm.log
#錯誤日志,默認在安裝目錄中的var/log/php-fpm.log

log_level = notice
#錯誤級別. 可用級別為: alert(必須立即處理), error(錯誤情況), warning(警告情況), notice(一般重要信息), debug(調試信息). 默認: notice.

emergency_restart_threshold = 60
emergency_restart_interval = 60s
#表示在emergency_restart_interval所設值內出現SIGSEGV或者SIGBUS錯誤的php-cgi進程數如果超過 emergency_restart_threshold個,php-fpm就會優雅重啟。這兩個選項一般保持默認值。

process_control_timeout = 0
#設置子進程接受主進程復用信號的超時時間. 可用單位: s(秒), m(分), h(小時), 或者 d(天) 默認單位: s(秒). 默認值: 0.

daemonize = yes
#后臺執行fpm,默認值為yes,如果為了調試可以改為no。在FPM中,可以使用不同的設置來運行多個進程池。 這些設置可以針對每個進程池單獨設置

listen = 127.0.0.1:9000
#fpm監聽端口,即nginx中php處理的地址,一般默認值即可。可用格式為: ‘ip:port’, ‘port’, ‘/path/to/unix/socket’. 每個進程池都需要設置.

user = www
group = www
#啟動進程的帳戶和組

pm = dynamic
#對于專用服務器,pm可以設置為static。
#如何控制子進程,選項有static和dynamic。如果選擇static,則由pm.max_children指定固定的子進程數。如果選擇dynamic,則由下開參數決定:
pm.max_children #,子進程最大數
pm.start_servers #,啟動時的進程數
pm.min_spare_servers #,保證空閑進程數最小值,如果空閑進程小于此值,則創建新的子進程
pm.max_spare_servers #,保證空閑進程數最大值,如果空閑進程大于此值,此進行清理

pm.max_requests = 1000
#設置每個子進程重生之前服務的請求數. 對于可能存在內存泄漏的第三方模塊來說是非常有用的. 如果設置為 ‘0’ 則一直接受請求. 等同于 PHP_FCGI_MAX_REQUESTS 環境變量. 默認值: 0.

pm.status_path = /status
#FPM狀態頁面的網址. 如果沒有設置, 則無法訪問狀態頁面. 默認值: none. munin監控會使用到

ping.path = /ping
#FPM監控頁面的ping網址. 如果沒有設置, 則無法訪問ping頁面. 該頁面用于外部檢測FPM是否存活并且可以響應請求. 請注意必須以斜線開頭 (/)。

request_terminate_timeout = 20 ?
#設置單個請求的超時中止時間. 該選項可能會對php.ini設置中的’max_execution_time’因為某些特殊原因沒有中止運行的腳本有用. 設置為 ‘0’ 表示 ‘Off’.當經常出現502錯誤時可以嘗試更改此選項。這個時長配置可以在php.ini(max_execution_time)或php-fpm.conf中配置均可,為了不影響全局配置,可在php-fpm.conf中實現。

值得注意的是:需要結合nginx.conf中的max_fail(調大些)和fail_timeout(調小些)一同配置。

rlimit_files = 1024
#設置文件打開描述符的rlimit限制. 默認值: 系統定義值默認可打開句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。

hp-fpm參數調優

pm = dynamic;

表示使用哪種進程數量管理方式

dynamic表示php-fpm進程數是動態的,最開始是pm.start_servers指定的數量,如果請求較多,則會自動增加,保證空閑的進程數不小于pm.min_spare_servers,如果進程數較多,也會進行相應清理,保證多余的進程數不多于pm.max_spare_servers

static表示php-fpm進程數是靜態的, 進程數自始至終都是pm.max_children指定的數量,不再增加或減少

pm.max_children = 300;?靜態方式下開啟的php-fpm進程數量
pm.start_servers = 20;?動態方式下的起始php-fpm進程數量
pm.min_spare_servers = 5;?動態方式下的最小php-fpm進程數量
pm.max_spare_servers = 35;?動態方式下的最大php-fpm進程數量

request_terminate_timeout = 20;?最長執行時間優化(php.ini)?這個是用來處理因為PHP執行時間超長而報502錯誤的解決

最大執行時間, 在php.ini中也可以進行配置(max_execution_time)

rlimit_files = 10240;?增加php-fpm打開文件描述符的限制

pm.max_requests = 1000; ?最大請求數優化?最大請求數:指一個php-fpm的工作進程在處理多少個請求后就終止掉。

nginx php-fpm配置過程中最大問題是內泄漏出問題:服務器的負載不大,但是內存占用迅速增加,很快吃掉內存接著開始吃交換分區,系統很快掛掉!其實根據官方的介紹,php-cgi不存在內存泄漏,每個請求完成后php-cgi會回收內存,但是不會釋放給操作系統,這樣就會導致大量內存被php-cgi占用。

官方的解決辦法是降低PHP_FCGI_MAX_REQUESTS的值,如果用的是php-fpm,對應的php-fpm.conf中的就是max_requests,該值的意思是發送多少個請求后會重啟該線程,我們需要適當降低這個值,用以讓php-fpm自動的釋放內存,不是大部分網上說的51200等等,實際上還有另一個跟它有關聯的值max_children,這個是每次php-fpm會建立多少個進程,這樣實際上的內存消耗是max_childrenmax_requests每個請求使用內存,根據這個我們可以預估一下內存的使用情況,就不用再寫腳本去kill了。

查看php-fpm進程數:

ps aux | grep -c php-fpm

————————————————
版權聲明:本文為CSDN博主「艦_長」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/z13615480737/article/details/86613873

總結

以上是生活随笔為你收集整理的linux php-fpm优化 php-fpm.conf 重要参数详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。