避免PHP FPM程序滿負載返回502狀態

2022-09-11 15:00:33 字數 741 閱讀 4541

排查:

1.檢視php-fpm慢日誌slowlog指向鏈結

2.檢視php-fpm日誌是否有錯誤或警告日誌

解決:1.調整php-fpm.conf中max_children配置

2.把耗時的網路io(curl)或磁碟io請求獨立出來

2.1)新增乙個php-fpm埠為9001的程序池,專門用了處理耗時的請求

2.2)nginx把耗時的處理**到9001的埠上

php-fpm.conf配置

#php-fpm.conf: 正常指令碼由靜態www池處理,阻塞指令碼由動態curl池處理

[www]

listen = 127.0.0.1:9000

pm = static

pm.max_children = 4

[curl]

listen = 127.0.0.1:9001

pm = dynamic

pm.max_children = 8

pm.start_servers = 4

pm.min_spare_servers = 4

pm.max_spare_servers = 6

nginx.cof配置

#nginx.conf: 訪問curl.php的請求都交給監聽9001的php-fpm程序池處理

location = /curl.php

這樣耗時的程序就不會影響計算的程序,有效時阻止502狀態出現

檢視php fpm程序數 php fpm程序數設定

1.php fpm有3種管理方式static 子程序數固定 dynamic 子程序動態設定 onedemand 程序需要才產生 2.php fpm 程序數主要通過下面5個引數 pm.max children pm為static時表示建立的子程序數量,pm為dynamic時表示最大可建立的子程序數 p...

PHP FPM程序數修改

php fpm優化引數介紹 他們分別是 pm pm.max children pm.start servers pm.min spare servers pm.max spare servers。pm 表示使用那種方式,有兩個值可以選擇,就是static 靜態 或者dynamic 動態 在更老一些的...

PHP FPM程序模型解析

先說一下php fpm的程序模型,php fpm採用的是master worker程序模型。當php fpm啟動時,會讀取配置檔案,然後建立乙個master程序和若干個worker程序 具體是幾個worker程序是由php fpm.conf中配置的個數決定 worker程序是由master程序for...