1. 程式人生 > >php-fpm.conf 重要引數 max_children 和 request_terminate_timeout(轉)

php-fpm.conf 重要引數 max_children 和 request_terminate_timeout(轉)

php-fpm.conf有兩個至關重要的引數:
一個是”max_children”,
另一個是”request_terminate_timeout”
我的兩個設定的值一個是”40″,一個是”900″,但是這個值不是通用的,而是需要自己計算的。


計算的方式如下:
如果你的伺服器效能足夠好,且寬頻資源足夠充足,PHP指令碼沒有系迴圈或BUG的話你可以直接將”request_terminate_timeout”設定成0s。0s的含義是讓PHP-CGI一直執行下去而沒有時間限制。而如果你做不到這一點,也就是說你的PHP-CGI可能出現某個BUG,或者你的寬頻不夠充足或者其他的原因導致你的PHP-CGI能夠假死那麼就建議你給”request_terminate_timeout”賦一個值,這個值可以根據你伺服器的效能進行設定。一般來說效能越好你可以設定越高,20分鐘-30分鐘都可以。由於我的伺服器PHP指令碼需要長時間執行,有的可能會超過10分鐘因此我設定了900秒,這樣不會導致PHP-CGI死掉而出現502 Bad gateway這個錯誤。

而”max_children”這個值又是怎麼計算出來的呢?這個值原則上是越大越好,php-cgi的程序多了就會處理的很快,排隊的請求就會很少。設定”max_children”也需要根據伺服器的效能進行設定,一般來說一臺伺服器正常情況下每一個php-cgi所耗費的記憶體在20M左右,因此我的”max_children”我設定成40個,20M*40=800M也就是說在峰值的時候所有PHP-CGI所耗記憶體在800M以內,低於我的有效記憶體1Gb。而如果我的”max_children”設定的較小,比如5-10個,那麼php-cgi就會“很累”,處理速度也很慢,等待的時間也較長。如果長時間沒有得到處理的請求就會出現504 Gateway Time-out這個錯誤,而正在處理的很累的那幾個php-cgi如果遇到了問題就會出現502 Bad gateway這個錯誤。


max_requests即是說每個程序若超過這個數目(跟php程序有一點點關係,關係不大),就自動殺死..我這裡應該設定512的,不過懶得壓力測試了,設定大一點,不過也不要設定過大,是個結構體,沒測試過,接近8K到9K大小.網上動輒設定100k,有點浪費記憶體了.一個程序浪費大小接近1M.按照網上常用配置的128個程序,大概浪費100M左右.好吧,我承認100M是白菜價,但也別這樣浪費..= =

max_children基本就是程序數,跟nginx的程序沒有想象中的那麼大,因為FPM會自己管理程序(有待考證,起碼我簡單瀏覽了一下原始碼,認為是這個意思).引數不宜設定過大,很佔記憶體,程序的消耗就不用我多說了.

max_children較好的設定方式根據req/s來設定,若程式是 100 req/s的處理能力..最大併發是10K,那麼就設定 100比較好,這是動態來調整的.

不過你若用php 5.3,也可以把style設定為apache-like,那麼設定start_servers,min_spare_servers,max_spare_servers三個引數就可以自動調整
很簡單,具體看配置檔案,這樣的設定之後,在高負載和複雜的php程式會省事一點,畢竟測試req/s是可惡的體力活.

相關推薦

php-fpm.conf 重要引數 max_children request_terminate_timeout()

php-fpm.conf有兩個至關重要的引數:一個是”max_children”,另一個是”request_terminate_timeout”我的兩個設定的值一個是”40″,一個是”900″,但是這個值不是通用的,而是需要自己計算的。計算的方式如下:如果你的伺服器效能足夠好,且寬頻資源足夠充足,PHP指令碼

php-fpm.conf引數含義

env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp

生產環境下的php-fpm.conf引數設定

;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; [glo

php配置文件php-fpm.conf

三方 帳戶 fpm dynamic 參數 mic group 請求 slow pid = run/php-fpm.pid#pid設置,默認在安裝目錄中的var/run/php-fpm.pid,建議開啟error_log = /alidata/log/php/php-fpm.

示波器的兩個最重要引數-頻寬取樣速率

1、確定測試訊號頻寬 頻寬一般定義為正弦波輸入訊號幅度衰減到 -3dB 時的頻率,即幅度的70.7% 。頻寬決定示波器對訊號的基本測量能力。如果沒有足夠的頻寬,示波器將無法測量高頻訊號,幅度將出現失真,邊緣將會消失,細節資料將被丟失;如果沒有足夠的頻寬,得到的訊號所有特性,包含響鈴和

PHP 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 log_level = notice #

php-fpm.conf php.ini配置檔案_2018_lcf

[[email protected] ~]# cat /root/online/php-fpm.conf   ;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;

評價Logistic迴歸模型優劣的兩個重要引數AICBIC

赤池資訊量準則,即Akaike information criterion、簡稱AIC,是衡量統計模型擬合優良性的一種標準,是由日本統計學家赤池弘次創立和發展的。赤池資訊量準則建立在熵的概念基礎上,可以權衡所估計模型的複雜度和此模型擬合數據的優良性。 優先考慮的模型應是A

php-fpm 高併發 引數調整

         工作中經常會遇到會給客戶配置伺服器,其中有的客戶還會有併發量要求,其中也會必須要用負載均衡承載壓力的。增加伺服器數量肯定能有效的提升伺服器承載能力,但只有根據目前已有配置設定好單臺伺服器才能更好的發揮出伺服器的效能。調整好一臺伺服器後剩下的就

URL引數中&+被成空格

     在ajax傳輸密碼串的時候,密碼總是報錯,檢視日誌發現密碼串有很多的空格,檢視在非ajax中傳輸的密碼串,發現密碼串中的&和+都被轉義成了空格。       檢視網上的資料[1]發現   web開發中通過問號(?)方式在瀏覽器位址列中傳值時。瀏覽器是通

PHP7中php.ini、php-fpmwww.conf的配置()

type date 以及 錯誤信息 sed 慢日誌 path tty exp 根據前文 《2015博客升級記(五):CentOS 7.1編譯安裝PHP7》 的 configure 編譯參數設定,安裝後的PHP7配置文件所在路徑是 /usr/local/php7/etc 。該

PHP7中php.ini、php-fpmwww.conf 配置

pid = run/php-fpm.pid pid設定,預設在安裝目錄中的var/run/php-fpm.pid,建議開啟 error_log = log/php-fpm.log 錯誤日誌,預設在安裝目錄中的var/log/php-fpm.log log_level = notic

php-fpm多實例提升系統吞吐量服務器資源利用率

最大限度 服務器 吞吐量 資源 網絡 業務的系統結構是nginx+php-fpm,服務器是12核cpu、16G的內存,工作中cpu、內存、io、網絡利用率都不高,但QPS就是跑不上去,超過800就會有少量錯誤並且性能下降,push瞬間服務就會抖動。排除了依賴的資源mc、redis原因後,那

如何在CentOS 6上通過YUM安裝NginxPHP-FPM()

木馬 dlink baidu centos 6 service 允許 dev dap mes 準備篇: 1、配置防火墻,開啟80端口、3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --stat

php-fpm進程管理方式(staticdynamic)

一個 get php-fpm com star cgi php-cgi title min 目前最新5.3.x的php-fpm,有兩種管理進程的方式,分別是static和dynamic。 如果設置成static,進程數自始至終都是pm.max_children指定的數量,p

Centos6Centos7上安裝LAMP(PHP-FPM模式、編譯安裝)

安裝 centos6 lamp -------------------------實驗:CentOS 7安裝LAMP(PHP-FPM模式)---------------------1、安裝PHP-FPM首先要卸載PHP: yum remove php yum install php-fpm

實驗:基於keepalived實現兩臺realserver服務器中的nginxphp-fpm服務互為主從

基於keepalived實現nginx和php-fpm互為主從 基於keepalived實現兩臺realserver服務器中的nginx和php-fpm服務互為主從 思路:利用兩個VIP,一個定位nginx,一個定位php-fpm步驟:1、準備兩臺基於LNMP架構的服務器(能夠提供正常的web服務)2、在ng

對於php-fpmcgi,還有並發響應的理解

文件 .html 內存 管理 運行時 bsp 配置 處理 target 參考鏈接: - https://www.zhihu.com/question/64414628 php fpm 進程數和並發數是什麽關系? - https://segmentfault.com/q/

php-fpm 啟動參數及重要配置詳解

oca 自己的 通過 當前 mys eve ash key bug 約定幾個目錄 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 一,php-f

Nginxphp-fpm的啟用停用腳本

OS show pid clas bash nbsp style col 停止 #!/bin/bash #停止php-fpm sudo php -v ps -ef | grep php-fpm | sed ‘$d‘ echo "......................