PHP FPM子程序數量應該如何設定?

2021-07-10 18:55:07 字數 883 閱讀 7109

首先,我們關注下 php-fpm 的執行方式:

static :表示在 `php-fpm` 執行時直接 `fork` 出 `pm.max_chindren` 個子程序,

dynamic:表示,執行時 `fork` 出 `start_servers` 個程序,隨著負載的情況,動態的調整,最多不超過 `max_children` 個程序。

一般推薦用static

php-fpm子程序數量,是不是越多越好?

當然不是,pm.max_chindren,程序多了,增加程序管理的開銷以及上下文切換的開銷。

更核心的是,能併發執行的php-fpm程序不會超過cpu個數。

如何設定,取決於你的**

國外技術大拿給出這麼個公式:

n + 20%m / m之間。

n 是 cpu 核心數量。

m 是 php 能利用的記憶體數量。

m 是每個 php 程序平均使用的記憶體數量。

適用於dynamic方式。

static方式:m / (m * 1.2)

當然,還有一種保險的方式,來配置max_children。適用於static方式。

pm.max_requests:指的是每個子程序在處理了多少個請求數量之後就重啟。

這個引數,理論上可以隨便設定,但是為了預防記憶體洩漏的風險,還是設定乙個合理的數比較好

PHP FPM子程序數量應該如何設定?

首先,我們關注下 php fpm 的執行方式 static 表示在 php fpm 執行時直接 fork 出 pm.max chindren 個子程序,dynamic 表示,執行時 fork 出 start servers 個程序,隨著負載的情況,動態的調整,最多不超過 max children 個...

PHP FPM子程序數量設定

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

如何檢視程序使用的執行緒數量?

如何檢視當前程序有多少個存活執行緒呢?方法1 pstree p 4761 程序id 如下截圖所示 方法2 cat proc 4761 程序id status。如下圖所示 方法3 top p 4761 程序id 然後按h。如下圖所示 指令碼解釋 比如某台伺服器的cpu使用率飆公升,通過top命令檢視是...