Linux

每個核心的最大 php-fpm 執行緒數

  • January 10, 2022

我想問一下如何獲得每個核心的最佳(最大)php-fpm執行緒數?如何對其進行基準測試(在 linux/debian 上)?以及如何辨識這個計數已經太多了?謝謝你。

您可能是指池中的程序。這主要取決於您的實際 PHP 程式碼有多少阻塞。它等待的越多,您需要的程序就越多,因為更多的子程序會阻塞並等待某些東西(例如 - 外部 HTTP 請求結束)。另一方面,這個實際數字確實取決於您擁有的記憶體量。每個核心 2-4 個程序的基本規則適用於一些不會阻塞太多的理想程式碼。當然,您可以通過查看 CPU 的規格來確定每個核心的正式執行緒數,例如Intel E5-2640 CPU 的每個核心的執行緒數為2。

確定池中實際子級數量的簡單方法很簡單:在開始時為您的 CPU 設置*#of Threads*,然後稍微增加,同時為您的安裝重複基準測試。一旦性能停止增加,或者一旦達到記憶體上限,就停止增加。

另請記住,在某些外部資源將達到上限或變得無響應的情況下(即 - 數據庫伺服器或您的程式碼可能查詢的某些外部 HTTP 伺服器) - 無論池中有多少孩子,您都會達到上限你有,他們只會停留在等待狀態。因此,在確定池上限時,您應該牢記這個可能的瓶頸。

引用自:https://serverfault.com/questions/809305