首頁 後端開發 php教程 詳解php-fpm中max_children的配置

詳解php-fpm中max_children的配置

Jul 21, 2020 pm 05:14 PM
php-fpm

詳解php-fpm中max_children的配置

現在nginx fpm 基本上成為主流的配置,其中我們比較關注的是pm.max_chindren的配置

首先,我們專注於一個設定: pm = static/dynamic

這個選項是標識fpm子程序的產生模式:

static :表示在fpm執行時直接fork出pm.max_chindren個worker進程

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

一般建議用static,優點是不用動態的判斷負載狀況,提升效能,缺點是多佔用些系統記憶體資源。

上面的告訴我們max_chindren所代表的worker的進程數。一般認為,這個配置越多能同時處理的並發也就越多,這是一個比較大的誤區:

  • 1) 其實進程多了,增加進程切換的開銷,更核心的是,能並發執行的fpm進程不會超過cpu個數。多開worker的個數來提升qps, 是錯誤的理解,不會說你多開了幾個進程,就多出幾個cpu來處理。
  • 2) worker進程開少了,如果server比較繁忙的話,會導到nginx把資料打到fpm的時候,發現所有的woker都在工作中,沒有空閒的worker來接受請求,從而導致502。
  • 3) 在實際業務中,由於我們有很多的i/o操作,例如讀取資料庫,或內部rpc呼叫這類在等待i/o的過程中,進程會被系統sleep, 而不佔用cpu,如果設定worker少了,也會導致cpu利用不上

那worker數到底該怎麼配置呢?

理論上woker進程數=cpu的個數是最合理的,但由於第2點,可能每個worker都沒處理完請求,這樣,就會頻現502了。但多開進程,只是說避免502,暫時把請求hang住,但這只是緩解之道,實際上這不但不會增加系統的並發,而且會加重系統的負荷,所以,基於2,3 ,設置一個合理的worker數就比較重要了。

天下武功,唯快不破,只有盡可能的提升程序的效率,把單一請求的時間壓縮到最低,這樣,單一worker的處理時間變短了,那在單位時間裡能處理的請求自然就多了。

那麼可以透過每個worker在單位時間內處理的請求數來預估max_children的個數。假如最大的一個請求的處理時間(xhprof裡看cpu時間)是100ms內,而在100ms之內同時有100個請求過來,那了理論上就需要配置100個worker進程,先把請求給hang住。

但最大的請求耗時可能會受很多外在情況的影響,不太好預估,尤其是網路i/o也算在裡面,我們可以藉用第三方的profile工具,例如xhprof , 這類工具可以統計cpu的耗時,透過這個時間來計算真正的worker數量,比總時間來計算要合理很多,其實這裡有一個捷徑,來配置你的max_children數, 就是你前期先把max_childnren設置成一個比較大的值,穩定運行一段時間後,觀察fpm的status裡的max active processes 是多少,然後把max_children配置比他大一些就ok了。

相關學習推薦:PHP程式設計從入門到精通

#

以上是詳解php-fpm中max_children的配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用php-fpm進行高效能調優 如何使用php-fpm進行高效能調優 Jul 08, 2023 am 11:30 AM

如何使用php-fpm進行高效能調優PHP是一種非常流行的伺服器端腳本語言,廣泛用於開發網頁應用程式和動態網站。然而,隨著訪問量的增加,PHP應用程式的效能可能會受到影響。為了解決這個問題,我們可以使用php-fpm(FastCGIProcessManager)來進行高效能調優。本文將介紹如何使用php-fpm來提升PHP應用程式的效能,並提供程式碼範例。一、

如何使用PHP-FPM優化來提升PrestaShop應用程式的效能 如何使用PHP-FPM優化來提升PrestaShop應用程式的效能 Oct 05, 2023 pm 12:33 PM

如何使用PHP-FPM優化來提高PrestaShop應用程式的效能隨著電子商務產業的快速發展,PrestaShop成為了許多商家選擇的電子商務平台。然而,隨著商店規模的擴大和訪問量的增加,PrestaShop應用程式可能會遇到效能瓶頸。為了提高PrestaShop應用的效能,常見的方法是使用PHP-FPM來最佳化和改善應用的處理能力。 PHP-FPM(FastCGI

如何使用PHP-FPM最佳化提升WooCommerce應用的效能 如何使用PHP-FPM最佳化提升WooCommerce應用的效能 Oct 05, 2023 am 08:24 AM

如何使用PHP-FPM優化提高WooCommerce應用的效能概述WooCommerce是一個非常流行的電子商務插件,用於在WordPress網站上建立和管理線上商店。然而,隨著商店的成長和流量的增加,WooCommerce應用可能會變得緩慢且不穩定。為了解決這個問題,我們可以使用PHP-FPM來優化和提升WooCommerce應用的效能。什麼是PHP-FP

利用php-fpm連接池提升資料庫存取效能 利用php-fpm連接池提升資料庫存取效能 Jul 07, 2023 am 09:24 AM

利用php-fpm連線池提升資料庫存取效能概述:在網路開發中,資料庫的存取是非常頻繁且耗時的操作之一。傳統的方法是每次資料庫操作都新建一個資料庫連接,使用完畢後再關閉連接。這種方式會造成資料庫連線的頻繁建立和關閉,增加了系統的開銷。為了解決這個問題,可以利用php-fpm連接池技術來提升資料庫存取效能。連接池的原理:連接池是一種快取技術,將一定數量的資料庫

如何利用PHP-FPM優化提升Phalcon應用的效能 如何利用PHP-FPM優化提升Phalcon應用的效能 Oct 05, 2023 pm 01:54 PM

如何利用PHP-FPM優化提升Phalcon應用的效能導語:Phalcon是一個高效能的PHP框架,結合PHP-FPM可以進一步提升應用的效能。本文將介紹如何利用PHP-FPM優化Phalcon應用的效能,並提供具體的程式碼範例。一、什麼是PHP-FPMPHP-FPM(PHPFastCGIProcessManager)是獨立於Web伺服器的PHP進程

php-fpm調優方法詳解 php-fpm調優方法詳解 Jul 08, 2023 pm 04:31 PM

PHP-FPM是一種常用的PHP流程管理器,用於提供更好的PHP效能和穩定性。然而,在高負載環境下,PHP-FPM的預設配置可能無法滿足需求,因此我們需要對其進行調優。本文將詳細介紹PHP-FPM的調優方法,並給予一些程式碼範例。一、增加進程數預設情況下,PHP-FPM只啟動少量的進程來處理請求。在高負載環境下,我們可以透過增加進程數來提高PHP-FPM的同時

利用php-fpm進程管理實現負載平衡 利用php-fpm進程管理實現負載平衡 Jul 09, 2023 pm 01:07 PM

利用php-fpm進程管理實現負載平衡隨著網路應用的日益複雜和用戶量的增加,負載平衡成為不可或缺的技術。負載平衡的目標是將流量分配到多個伺服器上,以提高系統的穩定性和效能。在PHP應用中,php-fpm(PHPFastCGIProcessManager)是一種常見的進程管理工具,可以用來實現負載平衡,並且提供了靈活的設定選項。本文將介紹如何使用

PHP-FPM效能提升策略及實務指南 PHP-FPM效能提升策略及實務指南 Oct 05, 2023 pm 03:55 PM

PHP-FPM效能提升策略及實務指南引言:隨著網際網路的快速發展和網站存取量的不斷增加,提升PHP應用程式的效能變得尤為重要。 PHPFastCGIProcessManager(PHP-FPM)是一個常用的PHP進程管理器,它可以透過一系列策略和實踐來提高PHP應用程式的效能。本文將介紹一些PHP-FPM的效能提升策略,並結合具體的程式碼範例,幫助讀者更好地

See all articles